赞
踩
TS中如何书写模块化语句
编译结果使用的是什么模块化标准
TS中 导入和导出模块 统一使用ES6的模块化标准
node 环境 - commonjs 转换成
require
引入 导出的声明会变成一个一个的属性
浏览器环境 - es2017 没有区别
export default
会被编译成exports
上的一个属性default
/*ts代码*/
/*导出*/
export default function sayHello(){
console.log("hello my Module");
}
/*导入*/
import sayHello from "./myModule"
sayHello();
/*commonjs编译结果*/
/*导出*/
function default_1() {
console.log("hello my Module");
}
exports.default = default_1;
/*导入*/
myModule_1.default();
fs
)import fs from "fs"
fs.readFileSync("./");
const fs_1 = require("fs");
fs_1.default.readFIleSync("./");
module.exports = {}
形式导出import {readFileSync} from "fs"
readFileSync("./");
import * as fs from "fs"
fs.readFileSync("./");
esModuleInterop
const fs = require("fs");
fs.readFileSync("./");
module.exports
和require
写法/*导出*/
module.exports = {
sex:'男',
eat:function(food){
console.log("I'm eating " + food)
}
}
/*导入*/
let obj = require("./myModule");
此种写法可以正常运行 但是TS无法检测到类型 不推荐
export
和 import
/*导出*/
export = {
sex:'男',
eat:function(food){
console.log("I'm eating " + food)
}
}
/*导入*/
import obj = require("./myModule")
模块解析:应该从什么位置寻找模块
TS中 有两种模块解析策略
classic: 经典
node: node 解析策略(唯一的变化是将js替换成ts)
https://www.cnblogs.com/winfred/p/8179815.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。