typescript变量定义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript变量定义相关的知识,希望对你有一定的参考价值。
参考技术A 1.let a: number;:定义一个类型是number的变量a(let a: number | string:联合类型)2.let b: boolean = false;:定义一个boolean类型的变量b并给它赋值false
3.let c = false;:定义一个变量c并给它赋值false(自动默认boolean类型)
4.let d: '男' | '女';:定义变量d,可以赋值男或女
5.let e: any;:关闭ts类型检查,可以赋值任意类型,相当js,也可以赋值给任意类型的变量(let e; 隐式any)
6.let f: unknown;:相当于any,不过不能赋值给其他类型(d=f是错的)
7.let g: name: string, age?: number;:定义一个对象,赋值的时候结构必须和定义时候的一样(?表示可选)
8.let h: name: string, [propName: string]: any;:定义一个对象,name是必须的,其他的可以优任意多个对象(propName随便起)
9.let i: (a: number, b: number) => number;:定义一个函数的结构(i = function() )
10.let j: string[];:定义一个字符串数组,里面只能放字符串(等同于:let j: Array<string>)
11.let k: [string, string, number];:元组,固定长度的数组(['1', '2', 3])
12.enum l: male, female;:枚举
13.提供get和set方法(类似java的封装)
在 VS Code 和 TypeScript 中调试 Azure DevOps 自定义任务时如何设置输入变量
【中文标题】在 VS Code 和 TypeScript 中调试 Azure DevOps 自定义任务时如何设置输入变量【英文标题】:How to set input variables when debugging Azure DevOps custom Tasks in VS Code and TypeScript 【发布时间】:2019-06-03 05:15:48 【问题描述】:背景: 我正在为 Azure DevOps 构建自定义构建任务。
此任务需要一个输入参数 param1 它是用 VS Code (v1.30.1) 和 TypeScript (tsc --version state: v3.2.2) 编写的问题 当我尝试调试我的任务时,我无法为 param1 传递变量值。中断点被击中,因此该部分正在工作。
一些代码: index.ts
import tl = require('azure-pipelines-task-lib/task');
async function run()
try
let param1: string = tl.getInput('param1', true);
if (param1 === null || param1 === undefined)
console.log('Should not be here...');
catch (err)
tl.setResult(tl.TaskResult.Failed, err.message);
run();
当我使用 tsc;node index.js 从控制台运行它时效果很好,但是当使用 VS Code 调试器运行时,我似乎永远无法将值传递给 param1,因此它在内部崩溃'getInput' 方法。
我的启动.json
"version": "0.2.0",
"configurations": [
"type": "node",
"request": "launch",
"name": "TaskName",
"program": "$workspaceFolder/Extensions\\BuildTasks\\TaskName\\index.ts",
"outFiles": [
"$workspaceFolder/Extensions\\BuildTasks\\TaskName\\**\\*.js"
]
]
我也试过添加
"env":
"param1": "thisBeString"
下输出文件,但没有成功。
无奈之下我也尝试过使用
"args":
"--param1": "thisBeString"
预期结果(失败...)
我还在我的 tasks.json 中使用了输入但没有成功 (according to this SO Q&A)
所以问题是在 VS Code 中调试 Azure DevOps 扩展时如何传入变量值。
【问题讨论】:
this 有帮助吗? @Matt 对我没有帮助,但可能是我在 VS Code+Typescript 方面的经验不足。但是我不能将“args”添加到我的tasks.json,类型是打字稿。可能可以通过使用外壳(节点)类型来修复,但我无法让它工作:( 【参考方案1】:作为环境变量传递的Task
输入参数的名称必须以INPUT_
为前缀。
在您的示例中,您将在启动环境中设置参数param1
,如下所示:
launch.json
"env":
"INPUT_param1": "thisBeString"
您无需在代码中重命名 param1
,因为前缀会自动添加到对 getInput()
的调用中。
在运行时设置任务环境时,Azure DevOps 管道也会添加前缀。这样做有助于降低与其他环境变量发生冲突的风险。
请参阅此处以获取 Azure Pipelines 任务 SDK 源参考:https://github.com/microsoft/azure-pipelines-task-lib/blob/master/node/task.ts#L219
【讨论】:
以上是关于typescript变量定义的主要内容,如果未能解决你的问题,请参考以下文章