Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
社区首页 >专栏 >TypeScript-声明

TypeScript-声明

原创
作者头像
杨不易呀
发布于 2023-09-29 14:51:30
发布于 2023-09-29 14:51:30
1820
举报
文章被收录于专栏:杨不易呀杨不易呀

在经过 TypeScript-声明的介绍了之后我们知道可以通过 declare 来进行声明,那么在 TS 当中呢它是不推荐我们将声明的定义和使用放在同一个文件当中的,它推荐的是将声明的定义单独写到一个文件当中里面去,好了介绍了这些内容之后我们先来看看我们把声明的定义单独写到一个文件当中去,然后在使用声明的地方看看能不能使用声明的定义内容吧。

新建 test.js 假设 test.js 当中的内容是我们第三方的库的内容,test.js 主要内容如下:

代码语言:typescript
复制
let myName = 'yangbuyiya';

function say(name, age) {
    console.log(`my name is ${name}, age is ${age}`);
}

class Person {
    name = 'yangbuyiya';
    age = 34;

    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    say() {
        console.log(`name is ${this.name}, age is ${this.age}`);
    }
}

然后我们在 index.ts 当中直接将 myName 直接打印,发现在编译器当中是报错的,但是呢,是可以实际运行的:

image-20211207141805854
image-20211207141805854
image-20211207141755322
image-20211207141755322

通过博主在编写如上代码的时候发现,编译器是没有提示的,那么如果想让编译提示是不是就可以利用之前 TypeScript-声明 的内容来进行声明,改造一下如上的示例:

代码语言:typescript
复制
declare let myName: string;
console.log(myName);
image-20211207142053089
image-20211207142053089

如上的代码将声明的定义和使用都写在了同一个文件,这是不推荐的写法,那么该如何把声明的定义单独抽取到一个文件当中呢,比如现在要给 test.js 编写声明文件,那么就需要新建一个 test.d.ts 的文件:

image-20211207142402045
image-20211207142402045

然后在将我们的声明定义代码放入进去,在放入之前 index.ts 当中的 myName 是报错的:

image-20211207142454783
image-20211207142454783

放入之后就不会报错了,不报错的原因也很简单,因为 TS 默认就会去自己去当前项目中查找所有以 .ts 结尾和所有 .d.ts 结尾的文件,那么这么一找,找到了就不会报错了,如果你操作了如上的步骤之后还是报错,那么这个时候就需要修改 tsconfig.json 了:

image-20211207144121844
image-20211207144121844
代码语言:json
复制
// 告诉TS需要找哪些文件
"include": [
  "./src/**/*.ts",
  "./src/**/*.d.ts"
]

如上配置的含义代表找 src 下面的所有子目录,两颗星代表所有的子目录,包括 1\2\3\4\5 ... 级等等。

注意点

声明中不能出现实现 以后你要给哪个文件进行声明的定义就是新建一个文件名和原本名字一样的然后以 .d.ts 结尾的文件在其中进行定义即可

最后来完善一下博主的案例即可。

test.d.ts

代码语言:typescript
复制
declare let myName: string;

declare function say(name: string, age: number): void;

declare class Person {
    name: string;
    age: number;

    constructor(name: string, age: number);

    say(): void;
}

index.ts

代码语言:typescript
复制
console.log(myName);

say("yangbuyiya", 18);

let person = new Person("yangbuyiya", 18);
person.say();
image-20211207143649194
image-20211207143649194

测试结果

image-20211207143708274
image-20211207143708274

最后

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

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

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

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Typescript真香秘笈
本文由 IMWeb 首发于 IMWeb 社区网站 imweb.io。点击阅读原文查看 IMWeb 社区更多精彩文章。 1. 前言 2018年Stack Overflow Developer的调研(https://insights.stackoverflow.com/survey/2018/)显示,TypeScript已经成为比JavaScript更受开发者喜爱的编程语言了。 之前我其实对于typescript没有太多好感,主要是认为其学习成本比较高,写起代码来还要多写很多类型声明,并且会受到静态类型检查
用户1097444
2022/06/29
5.7K0
Typescript真香秘笈
TypeScript-声明安装和TypeScript-命名空间补充
本篇文章主要介绍的内容就是声明的安装,其实在编写声明文件的时候又分为好几种,如果你导入的第三方的某个库是一个全局的库的话,那么什么叫全局的库呢,就是这个库当中的所有功能都是绑定到一个全局对象上的这种就称之为全局的库,这种时候就可以参照 TS 官方提供的全局编写模板来进行编写:
杨不易呀
2023/09/29
1920
【一起来烧脑】一步学会TypeScript入门
字符串新特性 变量和参数新特性 函数新特性 匿名函数 for of循环 TypeScript语言中的面向对象特性
达达前端
2019/07/18
4660
【一起来烧脑】一步学会TypeScript入门
如何编写 Typescript 声明文件
使用TypeScript已经有了一段时间,这的确是一个好东西,虽说在使用的过程中也发现了一些bug,不过都是些小问题,所以整体体验还是很不错的。
贾顺名
2019/12/09
1.9K0
Typescript学习笔记,从入门到精通,持续记录
TypeScript 最大的优势之一便是增强了编辑器和 IDE 的功能,包括代码补全、接口提示、跳转到定义、重构等。
房东的狗丶
2023/02/17
2K0
typescript基础笔记
typescript早在2013年就发布了第一个正式版本,印象中一直到了19年才大火起来。三年过去了,一直是可用可不用的状态,于是很多人都没学习使用。直到react和vue开始捆版上了ts,前端圈也开始了“内卷”,ts已经是不得不用的状态了。
wade
2022/03/28
7500
TypeScript基础常用知识点总结
虽然简介这一部分可能有人会觉得没必要,但是我觉得还是有必要简单的写一下的。我们以后既然要经常用它,当然得从认识它开始啦!不想看就往下滑咯。
害恶细君
2022/11/22
4.9K0
TypeScript基础常用知识点总结
TypeScript-访问器装饰器
接下来先来看一个替换 set 方法的案例然后在来解释 TypeScript 不允许同时装饰一个成员的get和set访问器 这句话的含义,替换代码如下:
杨不易呀
2023/09/29
2140
TypeScript-访问器装饰器
TypeScript学习笔记(二)—— TypeScript基础
JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。
张果
2022/10/04
5.1K0
TypeScript学习笔记(二)—— TypeScript基础
TypeScript-声明合并
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/29
2480
Node.js项目TypeScript改造指南
如果你有一个 Node.js 项目,并想使用 TypeScript 进行改造,那本文对你或许会有帮助。
coder_koala
2019/12/05
4.6K0
TypeScript学习笔记(三)—— 编译选项、声明文件
compilerOptions ⽀持很多选项,常⻅的有 baseUrl 、 target 、 moduleResolution 和 lib 等。 compilerOptions 每个选项的详细说明如下:
张果
2022/10/04
2.6K0
TypeScript学习笔记(三)—— 编译选项、声明文件
TypeScript 超详细入门讲解
当我们需要将 unknown 类型的变量赋值给其他类型的变量的时候,我们可以给他指定类型
小丞同学
2021/10/08
7420
【初学者笔记】🐯年要掌握 Typescript
JavaScript 是弱类型语言, 很多错误只有在运行时才会被发现,而 TypeScript 提供了一套静态检测机制, 可以帮助我们在编译时就发现错误。
一尾流莺
2022/12/10
1.3K0
【初学者笔记】🐯年要掌握 Typescript
你应该知道的TypeScript高级概念
来源 | https://juejin.cn/post/6897779423858737166
winty
2020/12/07
5060
Typescript笔记
数值类型有很不止 number, bigint也是。同时值的话可以是十进制,二进制,还可以是NaN。
踏浪
2020/11/05
5830
TypeScript 初学者入门学习笔记(一)
TypeScript 的类型系统,在很大程度上弥补了 JavaScript 的缺点。
前端达人
2021/06/16
1.8K0
TypeScript-继承和函数、函数声明和重载
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/28
3140
TypeScript-继承和函数、函数声明和重载
【Vuejs】301- Vue 3.0前的 TypeScript 最佳入门实践
然鹅最近的一个项目中,是 TypeScript+ Vue,毛计喇,学之...…真香!
pingan8787
2019/07/30
4.4K0
【Vuejs】301- Vue 3.0前的 TypeScript 最佳入门实践
软件开发入门教程网之TypeScript 声明文件
TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript 诸如类型检查等特性功能。为了解决这个问题,需要将这些库里的函数和方法体去掉后只保留导出类型声明,而产生了一个描述 JavaScript 库和模块信息的声明文件。通过引用这个声明文件,就可以借用 TypeScript 的各种特性来使用库文件了。
iOS程序应用
2023/01/11
3320
相关推荐
Typescript真香秘笈
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文