machao07 / interview-questions

前端技术栈相关面试知识点( Vue、React、Typescript、JavaScript...),喜欢请点start

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TS 中 declare、namespace、.d.ts

machao07 opened this issue · comments

declare

声明文件不包含实现,它只是类型声明,把声明文件加入到 TypeScript 中

namespace

确保创建的变量不会泄漏至全局命名空间
因此 TypeScript 提供了 namespace 关键字来描述这种分组

namespace Utility {
  export function log(msg) {
    console.log(msg);
  }
  export function error(msg) {
    console.log(msg);
  }
}

// usage
Utility.log('Call me');
Utility.error('maybe');

.d.ts 与 @types

.d.ts

可以在 ts 中调用的 js 的声明文件,主流的库都是 JS编写的,并不支持类型系统

@type

TS 2.0 中使用 @type/... 类型定义, ts将会默认的查看 ./node_modules/@types

区别:

  • @types是npm的一个分支,用来存放*.d.ts文件,如果对应的npm包存放在@types中,要使用必须下载!
  • 如果是自己本地的 *.d.ts申明文件,则和@types没有任何关系