当前位置: 首页 > wzjs >正文

云南网站建设设计泉州网站设计招聘网

云南网站建设设计,泉州网站设计招聘网,免费的网站搭建,天津规划设计公司语法知识点 回调地狱问题 用await,或者有些库提供了sync方法 yield 用法跟python的一样。 yield只能用于生成器里,生成器是function*,例如: export function* filter(rootNode: ts.Node, acceptedKind: ts.SyntaxKind) {for…

语法知识点

回调地狱问题

用await,或者有些库提供了sync方法

yield

用法跟python的一样。

yield只能用于生成器里,生成器是function*,例如:

export function* filter(rootNode: ts.Node, acceptedKind: ts.SyntaxKind) {for (const iterObj of walkTree(rootNode)) {if (iterObj[1].kind == acceptedKind) {yield iterObj;}}
}

字符串插值

ts没有format函数,用``插值,样例如下:

let s = "aaa";// 字符串插值
console.log(`i love ${s.length}`);

写文件

流式写:

function printAst(rootNode: ts.Node, outputFile: string) {const wstream = fs.createWriteStream(outputFile);try {for (...) {...wstream.write(`${new Array(path.length + 1).join('----')} ${syntaxKindToName(node.kind)} ${node.pos} ${node.end}\n`);}wstream.end();} finally {wstream.close();}
}

一次性写就用fs.writeFile

as

类型断言,类似java里的downcast,例如:

let node = iterObj[1] as ts.StringLiteral;
console.log(node.pos, node.text)

package.json

scripts字段含义

"scripts": {"build": "tsc","test": "jest"},

用npm run执行scripts里的命令:

npm run build
npm run test

顺带说一下,要支持typescript和jest,要在package.json里配置:

"devDependencies": {"@types/node": "^22.14.0","typescript": "^5.5.3","@types/jest": "^29.5.14",    "jest": "^29.7.0","ts-jest": "^29.3.1"},

UT

使用jest。

默认情况下jest只识别js文件,需要对ts进行转译让jest识别。否则报错:

Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

配置jest.config.js如下:

module.exports = {// 预设库preset: 'ts-jest',// jest模拟的环境,可以选择node、jsdom来模拟node和浏览器环境testEnvironment: 'node',// 待测试的文件路径testMatch: ['<rootDir>/tests/**/*.test.ts'],moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],// 转义插件,方便jest理解代码transform: {'^.+\\.ts$': 'ts-jest',},// 不进行匹配的目录transformIgnorePatterns: ['<rootDir>/node_modules/'],// 处理 webpack 的别名,比如:将 @ 表示 根目录moduleNameMapper: {'^@/(.*)$': '<rootDir>/$1',},
};

要支持typescript下的UT,需在package.json里配置jest和ts-jest:

"devDependencies": {..."@types/jest": "^29.5.14",    "jest": "^29.7.0","ts-jest": "^29.3.1"},

日志打印

使用winston:

export const LOGGER = winston.createLogger({level: 'info',format: winston.format.combine(winston.format.timestamp({format: 'YYYY-MM-DD HH:mm:ss'}),winston.format.printf(({timestamp, level, message}) => {return `${timestamp} [${level}]: ${message}`;})),transports: [new winston.transports.File({filename: 'website_checker.log', options: {flags: 'w'}})]
});

使用combine format,打印时间戳、级别及信息。options: {flags: ‘w’}表示每次覆盖日志文件,默认是追加。

类的写法跟java很像,几乎不用额外学习。例子:

class StaticChecker {private rootDir: string;constructor(rootDir: string) {this.rootDir = rootDir;}public execute() {...}...
}const checker = new StaticChecker("proj_path");
checker.execute();

正式代码里支持@符号

在tsconfig.json里配置paths选项:

{"compilerOptions": {"target": "es2016","module": "commonjs","esModuleInterop": true,"forceConsistentCasingInFileNames": true,"strict": true,"skipLibCheck": true,"outDir": "dist",// 支持import时的@符号"paths": {"@/*": ["./*"]}},"include": ["src"]
}
http://www.dtcms.com/wzjs/542310.html

相关文章:

  • 海南智能网站建设公司怎么做网站推广实际效果好
  • 网站建设目的与意义网站报价文档
  • 模型下载网站开发流程图再高权重网站加自己的链接会容易被收录吗
  • 浙江建设职业技术学院尔雅网站烟台高新区建设局网站
  • 大学营销型网站建设实训课程搭建集团网站
  • jsp 网站开发教程做照片模板下载网站好
  • 最新新闻热点事件2023年4月厦门百度seo排名
  • 手机网站跟pc网站有什么不同百度网站建设哪家公司好
  • 华为官方商城网站建设方案进入网站前如何做环境检测
  • 门户网站建设技术要求joomla wordpress drupal
  • 什么是网站组件招标网址
  • 天蝎网站推广优化微网站后台录入
  • 湖州 网站建设中文 wordpress插件
  • 大连网站建设仟亿单位做好安全生产举报奖励宣传工作的总结
  • 网站建设需求调研计划表珠海市建设工程质量监督检测站网站
  • 求生之路2怎么做非官方网站重庆seo网络推广关键词
  • 网站注册免费永久广州市建设局官方网站
  • wordpress需要伪静态吗优化师培训
  • wordpress网站维护如何自己建一个微网站
  • 久安网络微信网站建设免费咨询妇科医生在线
  • 电大网上作业代做网站wordpress 迁移 新目录
  • 网站建设服务合同需要哪些资料建设一个公司网站需要什么知识
  • 做优惠卷网站倒闭了多少境外网址app
  • 部队网站建设招标全国企业信息网上公示系统
  • 网站建设开发方式包括一l丫wordpress批量定时发布
  • 网站建设与网页设计案例教程 重庆大学出版社西宁网站建设开发公司
  • 景征网站建设如何制作个人网页页
  • 汕头网站推广费用百度抓取网站图片
  • 龙文国土局漳滨村新农村建设网站自建站电商外贸
  • 网站如何推广运营官网大全