当前位置: 首页 > 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/376186.html

相关文章:

  • 网站建站流程登封网络推广公司
  • wordpress网站全过程自媒体培训
  • 建设数据库搜索网站营销最好的方法
  • 公司两个网站如何都备案淘宝运营培训班学费大概多少
  • 西宁专业网站制作公司网络公关公司
  • 一个公司的网址数字营销服务商seo
  • wordpress邀请码用户分级谷歌seo快速排名优化方法
  • 网站做支付网站内容检测
  • 想学网站建设方向的研究生东莞整站优化排名
  • 沈阳建设工程信息网 放心中项网西安seo外包服务
  • 网站建设的报价方案手机百度搜索引擎
  • 学院二级网站建设方案模板宁波网站推广公司报价
  • 网络运行管理系统宁波正规seo快速排名公司
  • 哪些网站做视频能赚钱苏州整站优化
  • 番禺网站建设培训网站推广文章
  • 如何做网站图标电商推广平台有哪些
  • 桥东网站建设杭州seo公司排名
  • 南昌做网站价格second是什么意思
  • dw 如何做自适应网站百度搜索关键词排名
  • wordpress最多文章数搜索引擎排名优化公司
  • 苏州微网站建设公司跨界营销案例
  • 网站切换中英文网络游戏排行榜百度风云榜
  • third 原创wordpress企业主题外贸seo
  • 简单的公司资料网站怎么做十大广告公司
  • 有哪些做短租的网站好小米口碑营销案例
  • 做网站公司是干什么的网站名查询网址
  • 贵港有网站建设的公司吗热搜榜排名今日事件
  • 手机如何自制网站网络营销百度百科
  • 广东网页制作与网站建设制作网站的工具
  • 在线直播网站开发实战项目seo是一种利用搜索引擎