<?xml version="1.0" encoding="utf-8"?>
<!--Copyright, Microsoft Corporation, All rights reserved.-->
<Rule Name="TypeScriptBuild" DisplayName="TypeScript 生成" PageTemplate="generic" Description="TypeScript 生成" xmlns="http://schemas.microsoft.com/build/2009/properties">

  <Rule.Categories>
    <Category Name="TypeScriptBuild" DisplayName="TypeScript 生成"/>
  </Rule.Categories>

  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" Label="Configuration"/>
  </Rule.DataSource>

  <DynamicEnumProperty Name="TypeScriptToolsVersion" DisplayName="TypeScript 版本" Category="TypeScriptBuild" Description="要使用的 TypeScript 编译器版本" EnumProvider="AvailableTypeScriptVersions"/>

  <EnumProperty Name="TypeScriptTarget" DisplayName="ECMAScript 版本" Category="TypeScriptBuild" Description="要用于已生成的 JavaScript 的 ECMAScript 版本">
    <EnumValue Name="ES3" DisplayName="ECMAScript 3"/>
    <EnumValue Name="ES5" DisplayName="ECMAScript 5"/>
    <EnumValue Name="ES6" DisplayName="ECMAScript 6"/>
    <EnumValue Name="ES2016" DisplayName="ECMAScript 2016"/>
    <EnumValue Name="ES2017" DisplayName="ECMAScript 2017"/>
    <EnumValue Name="ESNext" DisplayName="ECMAScript Next"/>
  </EnumProperty>

  <EnumProperty Name="TypeScriptCompileOnSaveEnabled" DisplayName="在保存时编译" Category="TypeScriptBuild" Description="在保存时重新编译源">
    <EnumValue Name="true" DisplayName="是"/>
    <EnumValue Name="false" DisplayName="否"/>
  </EnumProperty>

  <EnumProperty Name="TypeScriptNoImplicitAny" DisplayName="允许隐式 &quot;any&quot; 类型" Category="TypeScriptBuild" Description="对于隐式“Any”类型，禁止有关表达式和声明的警告">
    <EnumValue Name="false" DisplayName="是"/>
    <EnumValue Name="true" DisplayName="否"/>
  </EnumProperty>

  <EnumProperty Name="TypeScriptModuleKind" DisplayName="模块系统" Category="TypeScriptBuild" Description="外部模块代码生成目标">
    <EnumValue Name="none" DisplayName="无"/>
    <EnumValue Name="amd" DisplayName="AMD"/>
    <EnumValue Name="commonjs" DisplayName="CommonJS"/>
    <EnumValue Name="umd" DisplayName="UMD"/>
    <EnumValue Name="system" DisplayName="系统"/>
  </EnumProperty>

  <EnumProperty Name="TypeScriptRemoveComments" DisplayName="在 JavaScript 输出中保留注释" Category="TypeScriptBuild" Description="将注释发送到输出中。">
    <EnumValue Name="false" DisplayName="是"/>
    <EnumValue Name="true" DisplayName="否"/>
  </EnumProperty>

  <StringProperty Name="TypeScriptOutFile" DisplayName="将 JavaScript 输出合并到文件中" Category="TypeScriptBuild" Description="将输出重定向到文件中"/>

  <StringProperty Name="TypeScriptOutDir" DisplayName="将 JavaScript 输出重定向到目录" Category="TypeScriptBuild" Description="将输出重定向到不同于源目录的目录"/>

  <EnumProperty Name="TypeScriptGeneratesDeclarations" DisplayName="生成声明文件" Category="TypeScriptBuild" Description="生成对应的 d.ts 文件">
    <EnumValue Name="true" DisplayName="是"/>
    <EnumValue Name="false" DisplayName="否"/>
  </EnumProperty>

  <EnumProperty Name="TypeScriptSourceMap" DisplayName="生成源映射" Category="TypeScriptBuild" Description="生成对应的 .map 文件">
    <EnumValue Name="true" DisplayName="是"/>
    <EnumValue Name="false" DisplayName="否"/>
  </EnumProperty>

  <StringProperty Name="TypeScriptMapRoot" DisplayName="指定源映射的根目录" Category="TypeScriptBuild" Description="发送源映射，使得在调试期间源映射将位于源映射根目录中"/>

  <StringProperty Name="TypeScriptSourceRoot" DisplayName="指定 TypeScript 文件的根目录" Category="TypeScriptBuild" Description="发送源映射，使得在调试期间源映射将位于源根目录中"/>

  <EnumProperty Name="TypeScriptNoEmitOnError" DisplayName="出现错误时发出" Category="TypeScriptBuild" Description="如果报告了任何错误，请发出输出">
    <EnumValue Name="true" DisplayName="否"/>
    <EnumValue Name="false" DisplayName="是"/>
  </EnumProperty>

  <EnumProperty Name="TypeScriptJSXEmit" DisplayName=".tsx 文件的编译模式" Category="TypeScriptBuild" Description="为 .tsx 文件指定 JSX 代码编译模式，这不会影响 .ts 文件">
    <EnumValue Name="none" DisplayName="无"/>
    <EnumValue Name="preserve" DisplayName="保留 JSX 元素"/>
    <EnumValue Name="react" DisplayName="发出 JSX 元素的 React 调用"/>
  </EnumProperty>
</Rule>
