Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments on the typescript page #193

Open
chengpeiquan opened this issue Oct 7, 2022 · 30 comments
Open

Comments on the typescript page #193

chengpeiquan opened this issue Oct 7, 2022 · 30 comments

Comments

@chengpeiquan
Copy link
Owner

~

@charlieDJ
Copy link

写的真好。我运行Ts时有个小问题,提示我没有安装@types/node,安装好这个依赖就能正常运行TS了

@chengpeiquan
Copy link
Owner Author

chengpeiquan commented Oct 28, 2022

写的真好。我运行Ts时有个小问题,提示我没有安装@types/node,安装好这个依赖就能正常运行TS了

收到哈~ 我周末检查一下看看~

@HelloAllenZhu
Copy link

本教程写得真好,比网上其他99%的教程都要通俗易懂,也更详细!

@zzxCNCZ
Copy link

zzxCNCZ commented Nov 17, 2022

写的很好,点赞

@rayadaschn
Copy link

rayadaschn commented Dec 1, 2022

很久没来看了,又想到了当时的一些想法:

  1. 在介绍 TypeScript 中,是否可以扩充一下断言类型非空断言 ! 等 。理由: 虽然断言需要慎用,但是本教程中,还是很多地方使用到了 非空断言,能够提高一些学习效率。(相较于重载 个人使用的频率反而不多)
  2. component 一章中,有介绍到 typeof 的使用,在实际应用中,也是很棒的技巧,在本章中应当提及,或是双向有关联,可能会更好

@chengpeiquan
Copy link
Owner Author

很久没来看了,又想到了当时的一些想法:

  1. 在介绍 TypeScript 中,是否可以扩充一下断言类型非空断言 ! 等 。理由: 虽然断言需要慎用,但是本教程中,还是很多地方使用到了 非空断言,能够提高一些学习效率。(相较于重载 个人使用的频率反而不多)
  2. component 一章中,有介绍到 typeof 的使用,在实际应用中,也是很棒的技巧,在本章中应当提及,或是双向有关联,可能会更好

重载当时决定拿出来特地说明是考虑到 Vue 3 很多 API 都用到了这个类型声明方式,如果提前了解,对后面涉及到的 API 学习有帮助,其他的 TS 技巧虽然没有都拿出来讲,但在用到的地方也有简单提及,比如 typeof 和泛型,后面如果有机会可以再补上去展开细讲,不过目前这本书已经被出版社签走了,截稿时间就在上个月已经给过去了,所以现在暂时不对当前的线上内容再做调整了哈~

@rayadaschn
Copy link

很久没来看了,又想到了当时的一些想法:

  1. 在介绍 TypeScript 中,是否可以扩充一下断言类型非空断言 ! 等 。理由: 虽然断言需要慎用,但是本教程中,还是很多地方使用到了 非空断言,能够提高一些学习效率。(相较于重载 个人使用的频率反而不多)
  2. component 一章中,有介绍到 typeof 的使用,在实际应用中,也是很棒的技巧,在本章中应当提及,或是双向有关联,可能会更好

重载当时决定拿出来特地说明是考虑到 Vue 3 很多 API 都用到了这个类型声明方式,如果提前了解,对后面涉及到的 API 学习有帮助,其他的 TS 技巧虽然没有都拿出来讲,但在用到的地方也有简单提及,比如 typeof 和泛型,后面如果有机会可以再补上去展开细讲,不过目前这本书已经被出版社签走了,截稿时间就在上个月已经给过去了,所以现在暂时不对当前的线上内容再做调整了哈~

太棒了!!! 期待拿到实体书。今年10月份的时候看到的这份教程,确实让我在转vue3的路上少踩了很多坑。非常感谢!!!
若有新书发布会,一定前来讨要签名本!

@chengpeiquan
Copy link
Owner Author

很久没来看了,又想到了当时的一些想法:

  1. 在介绍 TypeScript 中,是否可以扩充一下断言类型非空断言 ! 等 。理由: 虽然断言需要慎用,但是本教程中,还是很多地方使用到了 非空断言,能够提高一些学习效率。(相较于重载 个人使用的频率反而不多)
  2. component 一章中,有介绍到 typeof 的使用,在实际应用中,也是很棒的技巧,在本章中应当提及,或是双向有关联,可能会更好

重载当时决定拿出来特地说明是考虑到 Vue 3 很多 API 都用到了这个类型声明方式,如果提前了解,对后面涉及到的 API 学习有帮助,其他的 TS 技巧虽然没有都拿出来讲,但在用到的地方也有简单提及,比如 typeof 和泛型,后面如果有机会可以再补上去展开细讲,不过目前这本书已经被出版社签走了,截稿时间就在上个月已经给过去了,所以现在暂时不对当前的线上内容再做调整了哈~

太棒了!!! 期待拿到实体书。今年10月份的时候看到的这份教程,确实让我在转vue3的路上少踩了很多坑。非常感谢!!! 若有新书发布会,一定前来讨要签名本!

谢谢支持!十分感谢!(出版流程比较久,具体的我还在和编辑沟通,我也是第一次对接出版社😂

@mukiwu
Copy link

mukiwu commented Dec 20, 2022

因為搜尋 Vue3 相關資料而點進來的,覺得作者真的寫得很棒,口條清楚言之有物,也不會有什麼詭異的冷笑話。看到即將出書,先預祝新書大賣,也希望有機會能引進台灣,我一定買爆 XD

@chengpeiquan
Copy link
Owner Author

因為搜尋 Vue3 相關資料而點進來的,覺得作者真的寫得很棒,口條清楚言之有物,也不會有什麼詭異的冷笑話。看到即將出書,先預祝新書大賣,也希望有機會能引進台灣,我一定買爆 XD

谢谢你的支持!!!哇我刚刚逛了你的博客,生活好精彩,好多内容我很喜欢,我要收藏起来!

@Tosuke-sama
Copy link

大佬写得太好了,很适合我这种新人,大佬的书出来之后高低整几本

@chengpeiquan
Copy link
Owner Author

大佬写得太好了,很适合我这种新人,大佬的书出来之后高低整几本

谢谢,笔芯!

@in2049
Copy link

in2049 commented Jan 6, 2023

你好,我在本地build完ts文件后(生成dist/index.js),ts中的那段代码报错了,说是重复了,把js中的函数注释掉就没问题了,请问这是为什么

@chengpeiquan
Copy link
Owner Author

你好,我在本地build完ts文件后(生成dist/index.js),ts中的那段代码报错了,说是重复了,把js中的函数注释掉就没问题了,请问这是为什么

这个情况应该只出现在同时打开编译前的 index.ts 和编译后的 index.js ,在 index.ts 里才会提示重复声明,我也是有遇到,但是当关闭了 index.js 文件后,在 index.ts 里的这个报错信息其实是会消失。
而项目下如果存在 tsconfig.json 文件,则不再出现这个情况了。
查询过一些资料都没有明确到原因,出现这个报错的时候在命令行再次 build 其实也没有出现编译报错,只能说是 VSCode 的一个代码检查问题,正常在做项目的时候都会创建 tsconfig 文件,所以不用太担心这个情况。

@nanfb
Copy link

nanfb commented Jan 17, 2023

@in2049
你好,我在本地build完ts文件后(生成dist/index.js),ts中的那段代码报错了,说是重复了,把js中的函数注释掉就没问题了,请问这是为什么

使用{}包住就好了,作用域问题

@Frankie32244
Copy link

It's cool ~

@SifungLei
Copy link

写得非常好,比很多教程都好。冇得顶。多谢分享。

@SifungLei
Copy link

不过实际工作中,的项目都是通过一些脚手架创建的,工作中后多了一个逗号。

@michael2299
Copy link

写的通俗易懂,赞一个

@HenryPenTaKill
Copy link

小白甜点,爽学

@iSally
Copy link

iSally commented Nov 27, 2023

看的真爽,专门登录评论的,博主厉害,一个有灵魂的程序员兼厨师

@chengpeiquan
Copy link
Owner Author

看的真爽,专门登录评论的,博主厉害,一个有灵魂的程序员兼厨师

谢谢你的称赞哈哈哈

@rainmonG
Copy link
Contributor

rainmonG commented Apr 4, 2024

现在按教程步骤装包默认的版本有变化,主要是其中@types/node会默认安装20.12.4,它在package-lock.json中显示带有"dependencies": {"undici-types": "~5.26.4"},这会导致在修改编译JS版本"build": "tsc src/ts/index.ts --outDir dist --target es6"后npm run build时会报错:

...
node_modules/@types/node/globals.d.ts:6:76 - error TS2792: Cannot find module 'undici-types'. Did you mean to set the 'moduleResolution' option 
to 'nodenext', or to add aliases to the 'paths' option?
...

在当前这个阶段我还不知道该如何按它给的提示调试,我试过直接安装undici-types,但仍然报错,之后参考pop-os/shell#1664下[Venryx]的评论“The only solution I've found so far is to downgrade @types/node from 20.10.6 to 20.0.0”,我用npm install @types/[email protected]降版本后,build就没有错误了。
如果有新手和我遇到一样的问题,可以参考。
PS:还请博主酌情看看需不需要在文内提醒(我就不自作主张PR了)~比如在更早的章节(比如guide中讲npm install处)给个Tip:如果按照教程操作发现报错,也许是当时默认包版本区别导致,可以按教程中展示的版本替换包后再尝试。
或者如果这个问题有更针对报错提示的解决方案,盼分享。

@chengpeiquan
Copy link
Owner Author

现在按教程步骤装包默认的版本有变化,主要是其中@types/node会默认安装20.12.4,它在package-lock.json中显示带有"dependencies": {"undici-types": "~5.26.4"},这会导致在修改编译JS版本"build": "tsc src/ts/index.ts --outDir dist --target es6"后npm run build时会报错:

...
node_modules/@types/node/globals.d.ts:6:76 - error TS2792: Cannot find module 'undici-types'. Did you mean to set the 'moduleResolution' option 
to 'nodenext', or to add aliases to the 'paths' option?
...

在当前这个阶段我还不知道该如何按它给的提示调试,我试过直接安装undici-types,但仍然报错,之后参考pop-os/shell#1664下[Venryx]的评论“The only solution I've found so far is to downgrade @types/node from 20.10.6 to 20.0.0”,我用npm install @types/[email protected]降版本后,build就没有错误了。 如果有新手和我遇到一样的问题,可以参考。 PS:还请博主酌情看看需不需要在文内提醒(我就不自作主张PR了)~比如在更早的章节(比如guide中讲npm install处)给个Tip:如果按照教程操作发现报错,也许是当时默认包版本区别导致,可以按教程中展示的版本替换包后再尝试。 或者如果这个问题有更针对报错提示的解决方案,盼分享。

好嘞!我晚点来跑一下看看发生了什么事情

@chengpeiquan
Copy link
Owner Author

现在按教程步骤装包默认的版本有变化,主要是其中@types/node会默认安装20.12.4,它在package-lock.json中显示带有"dependencies": {"undici-types": "~5.26.4"},这会导致在修改编译JS版本"build": "tsc src/ts/index.ts --outDir dist --target es6"后npm run build时会报错:

...
node_modules/@types/node/globals.d.ts:6:76 - error TS2792: Cannot find module 'undici-types'. Did you mean to set the 'moduleResolution' option 
to 'nodenext', or to add aliases to the 'paths' option?
...

在当前这个阶段我还不知道该如何按它给的提示调试,我试过直接安装undici-types,但仍然报错,之后参考pop-os/shell#1664下[Venryx]的评论“The only solution I've found so far is to downgrade @types/node from 20.10.6 to 20.0.0”,我用npm install @types/[email protected]降版本后,build就没有错误了。 如果有新手和我遇到一样的问题,可以参考。 PS:还请博主酌情看看需不需要在文内提醒(我就不自作主张PR了)~比如在更早的章节(比如guide中讲npm install处)给个Tip:如果按照教程操作发现报错,也许是当时默认包版本区别导致,可以按教程中展示的版本替换包后再尝试。 或者如果这个问题有更针对报错提示的解决方案,盼分享。

解决了,具体原因在这篇博客里做了点说明,也在文档上更新了代码和博文跳转,谢谢你的反馈哈哈哈
https://chengpeiquan.com/article/typescript-error-cannot-find-module-undici-types.html

@Qale
Copy link

Qale commented Oct 31, 2024

在Hello TypeScript的完美运行部分,报错 Unexpected token 'export',在网上查了半天才找到一个方案-->package.json中增加"type": "module",将之前的"dev:ts": "ts-node src/ts/index.ts"改为"dev:ts": "node --loader ts-node/esm src/ts/index.ts",不知道原理是什么,麻烦帮忙看下

@xlxdd
Copy link

xlxdd commented Nov 13, 2024

直接运行`ts-node src/ts/index.ts"会一直有警告

(node:10500) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)

并且会报错,说有export {};ts-node可以运行commonjs模块不能运行ESM,所以面对export {};会报错。
但是运行npx tsc init生成配置后就不报错了,生成的配置中是"module": "commonjs",可能不运行npx tsc init默认是按ESM来的?

@xlxdd
Copy link

xlxdd commented Nov 13, 2024

终于被我找到了,是ts-node的默认配置有问题,使用npx ts-node --showConfig,可以看到ts-node配置中包含了编译器配置,复制compilerOptions节点到tsconfig.json,运行ts-node,直接复现错误。配置中的两行是冲突的:

"module": "node16",
"moduleResolution": "node10"

@ckkhnsf
Copy link

ckkhnsf commented Nov 26, 2024

不懂就问,问题在原始数据类型这一块,为什么我在js中console.log(typeof "xx")结果是小写的string,而不是大写的String

@Tosuke-sama
Copy link

不懂就问,问题在原始数据类型这一块,为什么我在js中console.log(typeof "xx")结果是小写的string,而不是大写的String

js基本规范中名字就是string,大写的String是js中string的构造函数,如果你使用TypeScript,在标注时依然是使用小写的string

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests