属性 'text' 在类型 'File' 上不存在
Property 'text' does not exist on type 'File'
我有以下代码来处理用户的文件上传:
17 const onFileDrop =
18 (files: File[]) => {
19 files.forEach(file => file.text().then(content => console.log(content)));
20 },
21 );
VS Code 没有显示任何错误,我可以正确访问包含 text()
函数的 File
界面。
但是,当 运行 npm start
我看到以下错误:
[tsl] ERROR in {omitted}/RawCommandOutputs.tsx(19,34)
TS2339: Property 'text' does not exist on type 'File'.
[tsl] ERROR in {omitted}/RawCommandOutputs.tsx(19,46)
TS7006: Parameter 'content' implicitly has an 'any' type.
行为差异是由于 webpack 和 VS Code 使用的 Typescript 版本不同。
该项目依赖于 Typescript 版本 3.5.2。在此版本中,File
接口不包含 text()
函数。因此,运行 npm start
显示了上述错误。
VS Code 似乎默认使用最新版本的 Typescript(在我的例子中是 3.9.5),其中包含更新的 File
界面。
为了使 VS Code 使用与我的项目相同版本的 Typescript,我添加了
"typescript.tsdk": "./node_modules/typescript/lib"
到我的 settings.json
文件。然后,我 运行 Select Typescript Version
命令并选择 Use Workspace Version
选项。
我有以下代码来处理用户的文件上传:
17 const onFileDrop =
18 (files: File[]) => {
19 files.forEach(file => file.text().then(content => console.log(content)));
20 },
21 );
VS Code 没有显示任何错误,我可以正确访问包含 text()
函数的 File
界面。
但是,当 运行 npm start
我看到以下错误:
[tsl] ERROR in {omitted}/RawCommandOutputs.tsx(19,34)
TS2339: Property 'text' does not exist on type 'File'.
[tsl] ERROR in {omitted}/RawCommandOutputs.tsx(19,46)
TS7006: Parameter 'content' implicitly has an 'any' type.
行为差异是由于 webpack 和 VS Code 使用的 Typescript 版本不同。
该项目依赖于 Typescript 版本 3.5.2。在此版本中,File
接口不包含 text()
函数。因此,运行 npm start
显示了上述错误。
VS Code 似乎默认使用最新版本的 Typescript(在我的例子中是 3.9.5),其中包含更新的 File
界面。
为了使 VS Code 使用与我的项目相同版本的 Typescript,我添加了
"typescript.tsdk": "./node_modules/typescript/lib"
到我的 settings.json
文件。然后,我 运行 Select Typescript Version
命令并选择 Use Workspace Version
选项。