gpt4 book ai didi

javascript - typescript 类型检查机制

转载 作者:行者123 更新时间:2023-11-30 09:52:54 26 4
gpt4 key购买 nike

在 typescript 中,编译以下内容。

class Person {
name : string;
}

class Employee {
name : string;
}

var person : Person = new Employee();

为什么会这样??这不会:

class Person {
name : string;
surname : string;
}

class Employee {
name : string;
}

var person : Person = new Employee();

除了:

Type employee is not assignable to type Person, the property surname is missing in type Employee

所以。类型在编译时使用属性名称进行比较??!

编辑:是的。这是来自 typescript 编译器的代码,用于检查。

            for (var i = 0; i < targets.length; i++) {
var related = isRelatedTo(sources[i], targets[i], reportErrors);
if (!related) {
return 0;
}
result &= related;
}
return result;

最佳答案

实际上,Typescript 根据对象的“形状”确定对象的类型 - 如果两个类具有相同的成员并且它们的类型和可访问性匹配,则它们被认为是兼容的并且可以互换使用。功能也是如此。正如 t.niese 在他们的评论中提到的,您可以在 the TypeScript handbook 中找到有关其背后原因和含义的更多信息。 .它基本上源于 JavaScript 大量使用匿名函数和对象这一事实,因此拥有更严格的类型系统可能会使在 TypeScript 中使用现有的 JS 库成为一项尴尬的任务。

关于javascript - typescript 类型检查机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com