为什么我需要在我的打字稿对象中访问“默认”?
Why do I need to access `default` in my typescript object?
我正在导入一个如下所示的对象:
{
"42": {
"DappToken": [
"0xa9B96972A81d98AeF3bD252C116e5D18C93a4cc1",
],
"TokenFarm": [
"0x09c3f825f5347Dbcb59A16DFC83540E034a11511",
]
}
}
我是这样导入的:
import * as networkMapping from "../abis/map.json"
然后像这样访问它:
const tokenFarmAddressFromMapping = networkMapping["default"][chainId]["TokenFarm"]
为什么我需要做 networkMapping["default"][chainId]["TokenFarm"]
而不是像常规 javascript 那样只做 networkMapping[chainId]["TokenFarm"]
?
假设您有这个文件:
// file-a.ts
export const a = 1
export const b = 2
export default 3
通常你会像这样导入它的命名导出:
import { a, b } from './file-a'
或者像这样默认导出:
import defaultExport from './file-a'
或者两者都是这样:
import defaultExport, { a, b } from './file-a'
但是当你这样做时 import * as someVar from './file-a'
,你得到的所有东西都是一个对象。
import * as fileA from './file-a'
fileA.a // 1
fileA.b // 2
fileA.default // 3
请注意 file-a.ts
中的默认导出没有名称。为了使这项工作正常进行,default
被指定为名称,以便它有一个 属性 名称来设置导入的对象。
如果您不想要这种行为,那么您只需使用以下方法导入默认导出:
import fileA from './fileA'
另一部分是 JSON 文件根本没有命名导出,只有默认导出,即单个值。所以你可以假设你的 JSON 文件等同于这个打字稿文件:
export default {
"42": {
"DappToken": [
"0xa9B96972A81d98AeF3bD252C116e5D18C93a4cc1",
],
"TokenFarm": [
"0x09c3f825f5347Dbcb59A16DFC83540E034a11511",
]
}
}
所有这些都意味着您想使用以下简单语法导入 JSON 的默认导出:
import networkMapping from "../abis/map.json"
我正在导入一个如下所示的对象:
{
"42": {
"DappToken": [
"0xa9B96972A81d98AeF3bD252C116e5D18C93a4cc1",
],
"TokenFarm": [
"0x09c3f825f5347Dbcb59A16DFC83540E034a11511",
]
}
}
我是这样导入的:
import * as networkMapping from "../abis/map.json"
然后像这样访问它:
const tokenFarmAddressFromMapping = networkMapping["default"][chainId]["TokenFarm"]
为什么我需要做 networkMapping["default"][chainId]["TokenFarm"]
而不是像常规 javascript 那样只做 networkMapping[chainId]["TokenFarm"]
?
假设您有这个文件:
// file-a.ts
export const a = 1
export const b = 2
export default 3
通常你会像这样导入它的命名导出:
import { a, b } from './file-a'
或者像这样默认导出:
import defaultExport from './file-a'
或者两者都是这样:
import defaultExport, { a, b } from './file-a'
但是当你这样做时 import * as someVar from './file-a'
,你得到的所有东西都是一个对象。
import * as fileA from './file-a'
fileA.a // 1
fileA.b // 2
fileA.default // 3
请注意 file-a.ts
中的默认导出没有名称。为了使这项工作正常进行,default
被指定为名称,以便它有一个 属性 名称来设置导入的对象。
如果您不想要这种行为,那么您只需使用以下方法导入默认导出:
import fileA from './fileA'
另一部分是 JSON 文件根本没有命名导出,只有默认导出,即单个值。所以你可以假设你的 JSON 文件等同于这个打字稿文件:
export default {
"42": {
"DappToken": [
"0xa9B96972A81d98AeF3bD252C116e5D18C93a4cc1",
],
"TokenFarm": [
"0x09c3f825f5347Dbcb59A16DFC83540E034a11511",
]
}
}
所有这些都意味着您想使用以下简单语法导入 JSON 的默认导出:
import networkMapping from "../abis/map.json"