首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TypeScript中的“声明类”和“接口”有什么区别

TypeScript中的“声明类”和“接口”有什么区别
EN

Stack Overflow用户
提问于 2013-01-16 03:35:25
回答 2查看 56.6K关注 0票数 130

在TypeScript中,当创建.d.ts源代码声明文件时,哪个更可取?为什么?

代码语言:javascript
复制
declare class Example {
    public Method(): void; 
}

代码语言:javascript
复制
interface Example {
    Method(): void;
}

我能说出的不同之处在于接口不能有静态方法,所以你必须使用一个类。两者都不产生任何JS输出,所以这可能无关紧要?

EN

回答 2

Stack Overflow用户

发布于 2013-01-16 04:38:13

您可以实现该接口:

代码语言:javascript
复制
class MyClass implements Example {
    Method() {

    }
}

declare class语法实际上是用来为不是用TypeScript编写的外部代码添加类型定义的-所以实现是“别处的”。

票数 25
EN

Stack Overflow用户

发布于 2016-04-20 05:05:07

用外行的话说,在.ts/d.ts文件中使用declare是为了告诉编译器,我们应该期望关键字we‘’re declaring存在于那个环境中,即使它没有在当前文件中定义。这将允许我们在使用声明的对象时具有类型安全性,因为Typescript编译器现在知道某些其他组件可能会提供该变量。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14345485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档