gpt4 book ai didi

angular - 如何将类型与动态导入一起使用?

转载 作者:太空狗 更新时间:2023-10-29 18:17:49 25 4
gpt4 key购买 nike

我在 Angular 7 中使用动态导入来减小初始供应商包的大小。

import('xlsx').then(XLSX => {
const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });
})

但是 XLSX.WorkBook 类型有一个错误:

Cannot find namespace XLSX.

XLSX.read 工作正常。

问题:使用动态导入时如何定义类型?

最佳答案

XLSX 将只表示导入的值,而不表示类型。

您有两个选择。

使用导入类型:

import('xlsx').then(XLSX => {
const wb: import('xlsx').WorkBook = XLSX.read(bstr, { type: 'binary' });
})

您可以定义类型别名以简化此操作:type WorkBook = import('xlsx').WorkBook

导入类型:

import { WorkBook } from 'xlsx' // Just for the type, will be elided in this example

import('xlsx').then(XLSX => {
const wb: WorkBook = XLSX.read(bstr, { type: 'binary' });
})

第二个选项更难正确,如果你只在类型中使用静态导入的导入,导入语句应该被省略(即不输出到 JS)。一旦您在表达式中使用静态导入中的任何导入(即,将在 JS 中结束的任何位置),导入将不会被省略。查看更多关于 module being elided

关于angular - 如何将类型与动态导入一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com