哪些列出的导入语句是相同的?
Which of the listed import statements are identical?
我在 node 中确定了以下导入语句。下面的所有语句是否使用不同的命名空间范围导入 mathgraph
,或者哪些导入样式相同?
const/var/let mathgraph = require('mathgraph');
import * as mathgraph from 'mathgraph';
import mathgraph from 'mathgraph';
import { mathgraph } from 'mathgraph';
import mathgraph = require('mathgraph');
// mathgrab lib
export default { foo: 'foo' }
// your code
import mathgraph from 'mathgraph';
mathgrab.foo
这会导入 默认 导出。
// mathgrab lib
export const someObject = { foo: 'foo' }
// your code
import { someObject } from 'mathgraph';
someObject.foo
这会导入一个 named 导出。
// mathgrab lib
export const someObject = { foo: 'foo' }
export default { bar: 'bar' }
// your code
import mathgraph, { someObject } from 'mathgraph';
mathgrab.someObject.foo
mathgrab.default.bar
您甚至可以将这两者结合起来,在一行中导入两种导出。
// mathgrab lib
export const someObject = { foo: 'foo' }
export default { bar: 'bar' }
// your code
import * as mathgraph from 'mathgraph';
mathgrab.someObject.foo
mathgrab.default.bar
这会将 所有 导出为单个对象。 default
导出将在此对象的 default
属性 上。
const mathgraph = require('mathgraph');
这仅适用于节点,并且在功能上与 import *
相同,但它是动态运行时要求,而不是编译时导入。这意味着打字稿不能使用导入文件的类型。 require
只是 一个函数,因此它 returns 是一个 any
类型的值,因此会丢失所有键入信息。
不要将 require
与 typescript 一起使用,你总是想使用 import
来代替。
import mathgraph = require('mathgraph');
最后,这是无效的语法。所以不要那样做。
我在 node 中确定了以下导入语句。下面的所有语句是否使用不同的命名空间范围导入 mathgraph
,或者哪些导入样式相同?
const/var/let mathgraph = require('mathgraph');
import * as mathgraph from 'mathgraph';
import mathgraph from 'mathgraph';
import { mathgraph } from 'mathgraph';
import mathgraph = require('mathgraph');
// mathgrab lib
export default { foo: 'foo' }
// your code
import mathgraph from 'mathgraph';
mathgrab.foo
这会导入 默认 导出。
// mathgrab lib
export const someObject = { foo: 'foo' }
// your code
import { someObject } from 'mathgraph';
someObject.foo
这会导入一个 named 导出。
// mathgrab lib
export const someObject = { foo: 'foo' }
export default { bar: 'bar' }
// your code
import mathgraph, { someObject } from 'mathgraph';
mathgrab.someObject.foo
mathgrab.default.bar
您甚至可以将这两者结合起来,在一行中导入两种导出。
// mathgrab lib
export const someObject = { foo: 'foo' }
export default { bar: 'bar' }
// your code
import * as mathgraph from 'mathgraph';
mathgrab.someObject.foo
mathgrab.default.bar
这会将 所有 导出为单个对象。 default
导出将在此对象的 default
属性 上。
const mathgraph = require('mathgraph');
这仅适用于节点,并且在功能上与 import *
相同,但它是动态运行时要求,而不是编译时导入。这意味着打字稿不能使用导入文件的类型。 require
只是 一个函数,因此它 returns 是一个 any
类型的值,因此会丢失所有键入信息。
不要将 require
与 typescript 一起使用,你总是想使用 import
来代替。
import mathgraph = require('mathgraph');
最后,这是无效的语法。所以不要那样做。