The new keyword in JavaScript can be quite confusing when it is first encountered, as people tend to think that JavaScript is not an object-oriented programming language. What is it? What problems ...
83 new() describes a constructor signature in typescript. What that means is that it describes the shape of the constructor. For instance take {new(): T; }. You are right it is a type. It is the type of a class whose constructor takes in no arguments. Consider the following examples
New does not guarantee heap allocation and simply avoiding new does not guarantee stack allocation. New is always used to allocate dynamic memory, which then has to be freed. By doing the first option, that memory will be automagically freed when scope is lost.
According to this reference for operator new: Global dynamic storage operator functions are special in the standard library: All three versions of operator new are declared in the global namespac...
If the new() generic constraint is applied, as in this example, that allows the class or method (the AuthenticationBase<T> class in this case) to call new T(); to construct a new instance of the specified type. There is no other way, short of reflection (this includes using System.Activator, to construct a new object of a generic type.
A new expression is the whole phrase that begins with new. So what do you call just the "new" part of it? If it's wrong to call that the new operator, then we should not call "sizeof" the sizeof operator, or & the address-of operator (when it behaves like one).
In the specific case of throw, throw new() is a shorthand for throw new Exception(). The feature was introduced in c# 9 and you can find the documentation as Target-typed new expressions. As you can see, there are quite a few places where it can be used (whenever the type to be created can be inferred) to make code shorter. The place where I like it the most is for fields/properties:
Note that if you declared it var a = new { }; and var o = new object();, then there is one difference, former is assignable only to another similar anonymous object, while latter being object, it can be assigned to anything.
String array = new String[10]{}; //The line you mentioned above Was wrong because you are defining an array of length 10 ([10]), then defining an array of length 0 ({}), and trying to set them to the same array reference (array) in one statement. Both cannot be set. Additionally The array should be defined as an array of a given type at the start of the statement like String[] array. String ...
The introduction documents dedicate many paragraphs to explaining the difference between new() and make(), but in practice, you can create objects within local scope and return them. Why would you...