前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript-类型兼容性

TypeScript-类型兼容性

原创
作者头像
杨不易呀
发布2023-09-28 19:29:17
1400
发布2023-09-28 19:29:17
举报
文章被收录于专栏:杨不易呀杨不易呀

基本兼容性

可多不可少

正确示例:

代码语言:typescript
复制
interface TestInterface {
    name: string;
}

let p1 = {name: 'yangbuyiya'};
let p2 = {age: 18};
let p3 = {name: 'yangbuyiya', age: 18};

let t: TestInterface;
t = p1;
t = p3;

错误示例:

image-20211201103028189
image-20211201103028189
代码语言:typescript
复制
interface TestInterface {
    name: string;
}

let p1 = {name: 'yangbuyiya'};
let p2 = {age: 18};
let p3 = {name: 'yangbuyiya', age: 18};

let t: TestInterface;
t = p1;
t = p2;
t = p3;

会递归检查

改造如上接口约束代码,添加子属性如下:

代码语言:typescript
复制
interface TestInterface {
    name: string;
    children: {
        age: number
    };
}

然后再次进行测试,正确示例:

代码语言:typescript
复制
interface TestInterface {
    name: string;
    children: {
        age: number
    };
}

let p1 = {name: 'yangbuyiya', children: {age: 18}};
let p2 = {name: 'yangbuyiya', children: {age: 'abc'}};

let t: TestInterface;
t = p1;

错误示例,因为 p2 当中的 age 属性是字符串类型:

代码语言:typescript
复制
interface TestInterface {
    name: string;
    children: {
        age: number
    };
}

let p1 = {name: 'yangbuyiya', children: {age: 18}};
let p2 = {name: 'yangbuyiya', children: {age: 'abc'}};

let t: TestInterface;
t = p1;
t = p2;
输入图片说明
输入图片说明

最后

本期结束咱们下次再见?~

? 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ ?

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本兼容性
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com