最近刚学ts,看到关于ts1.5版本的关于模块的变化后,
- 有点不太理解内部模块和外部模块怎么区分?
- 我给从npm安装的没有用ts写的npm包写声明文件.d.ts时
我是这么引入三方库的
import * as Orientation from 'react-native-orientation';
声明文件这么写的
declare namespace Orientation {
...
}
这样会提示没有声明
但是我如果这么写就ok
declare module 'react-native-orientation'{
...
}
这是为什么?不是在1.5之后不推荐用module了么?到底该怎么自己给三方写声明文件呢?
另外我用到的这个三方库在官方types仓库有人已经定义过了,我没有直接安装只是想自己学下怎么写,我看他们就是用namespace那样子写的,后来我安装了一下,发现也没有报错了,为什么我自己用namespace写就有问题呢?
我这几天才专门了解申明这块.
首先这里针对imoort 模块, 使用namespace 是不对的, 虽然module 不推荐了,但是对于
这种导入的库文件还是必须这样使用的
这个申明是针对导入的模块没有申明.
而namespace 则相当于定义了一个全局的 变量对象