相关疑难解决方法(0)

TypeScript:为什么一个数字可分配给Object类型的引用?

为什么这是合法的TypeScript?

var x: number = 5
var y: Object = x
Run Code Online (Sandbox Code Playgroud)

肯定有一个数字不是Object.有人可能怀疑x被隐式强制(自动装箱)到一个对象,但没有:

if (!(y instanceof Object)) {
   console.log(typeof y)
}
Run Code Online (Sandbox Code Playgroud)

版画

number
Run Code Online (Sandbox Code Playgroud)

作为记录:

$ tsc --version
Version 1.8.10
Run Code Online (Sandbox Code Playgroud)

primitive coercion subtyping typescript

7
推荐指数
1
解决办法
319
查看次数

Typescript泛型类型检查无法按预期工作

我做了一个简单的测试夹具:

export interface ITest1 {}
export interface ITest2 {}
export interface ITestGeneric<T> {}

export function test() {
  let p: ITestGeneric<ITest1> = {}
  let q: ITestGeneric<ITest2> = p;
}
Run Code Online (Sandbox Code Playgroud)

我希望最后一行失败,因为在C#中这种不兼容的类型分配不起作用.但是,打字稿无需投诉即可编译.

有人能告诉我为什么这样做有效以及我必须做些什么来使其失败?

generics typescript

1
推荐指数
1
解决办法
840
查看次数

标签 统计

typescript ×2

coercion ×1

generics ×1

primitive ×1

subtyping ×1