打字稿相当于C#的默认<T>?

Ser*_*ern 6 typescript

在Typescript中,是否有相当于默认值

如果没有,它的行为能以某种方式实现吗?

例:

 let myNumber = default<Number>(); // 0
 let myInstance = default<MyClass>(); // null
Run Code Online (Sandbox Code Playgroud)

Ale*_*ill 3

不,TypeScript 中没有这样的东西:

  • 如果strictNullChecks设置了该标志,则每种类型(包括用户定义的)都需要自己的default实例,这是不切实际的

  • 如果未设置,则所有内容的默认值都是undefined这样,因此没有必要使用特殊的default运算符

如果您需要这种行为,您将必须为您需要的每种类型自行定义默认函数 - 即使这样,您也将无法通用地使用它们,因为通用类型信息在运行时不会保留