精华内容
下载资源
问答
  • ts:json串转换成数组

    千次阅读 热门讨论 2019-06-09 11:33:53
      小咸儿在项目的时候,需要一个批量更新的功能,但是批量更新所需要的Id却需要从另一个页面a传过来。   一开始小咸儿使用的方式是:直接将接收到的json串传递到页面a 使用数组接受返回值: 页面a跳转页面b...

      小咸儿在做项目的时候,需要做一个批量更新的功能,但是批量更新所需要的Id却需要从另一个页面a传过来。

      一开始小咸儿使用的方式是:直接将接收到的json串传递到页面a

    使用数组接受返回值:
    在这里插入图片描述
    页面a跳转页面b并传递参数:
    在这里插入图片描述
      结果在页面b接收时,竟然变成了这样
    在这里插入图片描述
      所以小咸儿想要在页面b中将接过来的json串数据进行转换,但是试了多种方法仍然不行,经过询问大佬之后才明白,可以结合

    JSON.stringify() 方法和 JSON.parse()方法使用

    页面a跳转页面b并传递参数:
    在这里插入图片描述
    在页面b接收时:
    在这里插入图片描述
      这样在打印出来的内容就是我想要的普通数组的样式了。

    总结

    • JSON.stringify():方法是将一个对象或者数组转换为一个JSON字符串,如果指定了replacer是一个函数,则可以选择性的替换值,或者如果指定了replacer是一个数组,可选择性的仅包含数组指定的属性。

     语法:JSON.stringify(value[, replacer [, space]])

     参数:value(将要序列化成一个JSON字符串的值),replacer(可选),space(可选)

    • JSON.parse():方法是将一个JSON字符串转换为对象。

     语法:JSON.parse(text[, reviver])

     参数:text(必需,一个有效的JSON字符串),reviver(可选)

    展开全文
  • 【angular】ts截取字符串、json

    千次阅读 2018-03-13 11:37:28
    因为我要的界面和组长的界面差不多所以我直接拷贝的代码,本来是好好的、安安静静地在那里展示着,但是不知道怎么回事,全乱了,所以调样式吧,后台传给我的是一张试卷的json?,接到之后转格式改之后的代码,这样...

    因为我要做的界面和组长的界面差不多所以我直接拷贝的代码,本来是好好的、安安静静地在那里展示着,但是不知道怎么回事,全乱了,所以调样式吧,后台传给我的是一张试卷的json?,接到之后转格式

    改之后的代码,这样展示的是一行,将&nbsp什么的都去掉了:

      ngOnInit() {
        if (this.question.stuScore == "" || this.question.stuScore == null) {
          this.question.stuScore = "0"
        }
        if (this.question.studentAnswer.includes("<br>")) {
          this.changeWordForShow(this.question.studentAnswer);
        }
      }
    
      changeWordForShow(studentAnswerData: string) { 
        let arg: string[] = this.question.studentAnswer.split("<br>");
        let textForAnswer: string = "";
        for (var i = 0; i < arg.length; i++) {
          textForAnswer = textForAnswer + arg[i].toString();
        }
        this.question.studentAnswer=textForAnswer;
        let lastThingForAnswer: string = '';
        if (textForAnswer.includes("&nbsp;&nbsp;")) {
          let dataMerge:any = this.question.studentAnswer.split("&nbsp;&nbsp;");
          dataMerge.forEach(eleIndex => {
            lastThingForAnswer = lastThingForAnswer + eleIndex.toString();
          });
          this.question.studentAnswer = lastThingForAnswer;              
        } else {
          this.question.studentAnswer = textForAnswer;
        }
      }

    之前组长的代码,这样是多行展示的:对用户来说更好看一点,但是不起作用、诶

    ngOnInit() {
      this.questionAnswer = this.turnAnswer(this.question.answer);
      this.studentAnswer = this.turnAnswer(this.question.studentAnswer);
    }

    具体的操作

    //多个答案间 会有 |  这样就不是 json 了,转json会报错 所以先分割成数组在一次转格式
    turnAnswer(answer) {
      if (answer != null && answer.length > 0) {
        if (answer.includes("|")) {
          let echoBusinessList: Array<string> = answer.split("|");
          // private questionSubList = new Array<QuestionSubEntity>(); //页面上显示的答案        
          // for (let i = 0; i < echoBusinessList.length; i++) {
          //   this.questionSubList.push({ optionOrder: i + 1, optionsContent: '', questionMainId: '' });
          // }
          let dataMsg: any="";
          echoBusinessList.forEach(x => {
            dataMsg = dataMsg + this.processAnswer(JSON.parse(x));
          });
          return dataMsg;
        } else {
          return this.processAnswer(JSON.parse(answer));
        }
      }
    }

    上面调用了一个方法:

    /* 处理答案 */
    private processAnswer(businessList: BussinessModel[]) {
      let answerForShow: string = "";
      businessList.forEach((element, index) => {
        answerForShow += "业务" + (index + 1) + "&nbsp;&nbsp;:&nbsp;&nbsp;" + element.explain + "<br>";
        answerForShow += this.joinAnswer(element.borrowList);
        answerForShow += this.joinAnswer(element.loanList);
        answerForShow += "<br>"
      })
      return answerForShow;
      //这个是因为上面的不起作用,&nbsp;就只有显出来了,我这里不起作用,我们组长那里貌似好好的,悲伤~~
      // let answerForShow: string = "";
      // businessList.forEach((element, index) => {
      //   answerForShow += "业务" + (index + 1) + " :" + element.explain + " ";
      //   answerForShow += this.joinAnswer(element.borrowList);
      //   answerForShow += this.joinAnswer(element.loanList);
      //   answerForShow += " ;"
      // })
      // return answerForShow;
    }

    连接答案

    /* 连接答案 */
    private joinAnswer(item) {
      let answer: string = "";
      item.forEach(element => {
        answer += "&nbsp;&nbsp;&nbsp;&nbsp;" + element.type + "&nbsp;&nbsp;&nbsp;&nbsp;" + element.subject
          + "&nbsp;&nbsp;&nbsp;&nbsp;" + element.explain + "&nbsp;&nbsp;&nbsp;&nbsp;" + element.amount + "<br>";
      })
      return answer;
      //replace只对第一个起作用,这个也是试了很多次才知道的
      // let answer: string = "";
      // item.forEach((element, index) => {
      //   let loanlistData = element.type.split();
      //   element.type = element.type.replace("&nbsp;", "");
      //   element.type = element.type.replace("&nbsp;", "");
      //   element.type = element.type.replace("&nbsp;", "");
      //   element.type = element.type.replace("&nbsp;", "");
      //   element.type = element.type.replace("&nbsp;", "");
      //   element.type = element.type.replace("&nbsp;", "");
      //   answer += " " + element.type + "" + element.subject
      //     + " :" + element.explain + "" + element.amount + " ";
      // })
      // return answer;
    }
    展开全文
  • apijson-node Node.ts 版 APIJSON,提供 nestjs 和 typeorm 的 Demo,支持 MySQL, PostgreSQL, SQL Server, Oracle uliweb-apijson Python 版 APIJSON,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite 等 ...
  • 最近学习Cocos,在单机案列的过程中,需要实现数据的读写。由于网页端,cocos 提供的cc.sys.localStorage的setItem和getItem方法。遇到在数据关系较复杂的时候,查询数据极不方便的问题。 我的个人需求如下: 在...

    最近学习Cocos,在做单机案列的过程中,需要实现数据的读写。由于网页端,cocos 只提供cc.sys.localStorage的setItem和getItem基本的读写方法。遇到在数据关系较复杂的时候,查询和修改数据不方便的问题。

    我的个人需求如下:

    在商店购买的时候,更新玩家的背包,全部用json存储的话,结构稍复杂,于是上网找到如下2个库:
    1、jslinq
    2、typescriptlinq
    ​​

    经过试验测试:

    第2个库各种尝试均报错,可能是我写错了,官方给的例子的是一元数组,官方例子也跑不出结果;最终选择jslinq库;


    下面附上具体的方法及返回值:
     

    //Where

            where?: (condition: (el: T) => boolean) => JsLinq<T>;

     

            //Select

            select: (projection: (el: T) => any) => JsLinq<T>;

     

            //GroupBy

            groupBy?: (group: (el: T) => any) => JsLinqGroup<T>;

     

            //Join

            join?: (otherData: T[]) => JsLinq<T>;

     

            //ToList

            toList?: () => T[];

     

            //Intersect

            intersect?: (otherData: T[], comparisonField?: (el: T) => T) => JsLinq<T>;

     

            //Distinct

            distinct?: () => JsLinq<T>;

     

            //OrderBy

            orderBy?: (sortField: (el : T) => any) => JsLinq<T>;

     

            //OrderByDescending

            orderByDescending?: (sortField: (el: T) => any) => JsLinq<T>;

     

            //SelectMany

            selectMany?: <Q>(projection: (el: T) => Q[]) => JsLinq<Q>;

     

            //SingleOrDefault

            singleOrDefault?: (condition?: (el: T) => boolean) => T;

     

            //FirstOrDefault

            firstOrDefault?: (condition?: (el: T) => boolean) => T;

     

            //LastOrDefault

            lastOrDefault?: (condition?: (el: T) => boolean) => T;

     

            //Any

            any?: (condition?: (el: T) => boolean) => boolean;

     

            //All

            all?: (condition?: (el: T) => boolean) => boolean;

     

            //Count

            count?: () => number;

     

            //Skip

            skip?: (quantity: number) => JsLinq<T>;

     

            //Take

            take?: (quantity: number) => JsLinq<T>;

     

            //Max

            max?: (projection?: (el: T) => any) => T;

     

            //Min

            min?: (projection?: (el: T) => any) => T;

     

            //Remove

            remove?: (element: T) => JsLinq<T>;

     

            //Subtract

            subtract?: (otherData: T[], comparisonField?: (el : T) => T) => JsLinq<T>;

     

            //Sum

            sum?: (projection?: (el: T) => number) => number;

     

            //Average

            average?: (projection?: (el : T) => number) => number;   


    JSON数据的修改:由于JS对象赋值数组之后,对象直接指向原来数组的地址。直接修改JS对象,原数组的值就会对应修改

    ==============================================================================================

    6.5更新:具体的使用方法举例

    1、where

    const tEq = jslinq(Equipment).where(p=>p['e_id']==pE['goods_id']).firstOrDefault();

    2、remove

    const singLeObj = jslinq(myPackage).where(p=>p['id']==this.packageObj['id']).singleOrDefault();

    Global.playerControl.package = jslinq(myPackage).remove(singLeObj).toList();

     

    展开全文
  • 为什么要代码生成?几乎每个前端项目里大概都是这样的流程,通过模板初始化前端工程,后端同学提供了接口文档后,前端同学就要对照着文档,先是给接口起名字,写上 接口的 path、http method、params、data,勤快...

    为什么要做代码生成?

    几乎每个前端项目里大概都是这样的流程,通过模板初始化前端工程,后端同学提供了接口文档后,前端同学就要对照着文档,先是给接口起名字,写上 接口的 path、http method、params、data,勤快的同学会把接口的入参作为函数的注释,就这样完成了一个接口的定义,再看文档,还有几十个接口要这样写,接着 copy,paste,改名字,改path,改method,改参数,可能稍微不注意就改错了某个参数,接着在联调时又浪费不必要的时间。

    代码生成会带给哪些优势?

    • 免去手写大量复制粘贴的代码,接入pipeline,实现自动化
    • 具体的方法提示,省去在 vue 组件和 api 文件直接来回切换
    • TypeScript 加持,使用 VSCode 类型推导,方便查看参数类型
    • 直达 catalog,准确定位 function 位置

    一、环境搭建

    repo 地址

    git clone git@github.com:OpenAPITools/openapi-generator.git

    项目环境必备条件

    • 安装 Java 8
    • 安装 maven
    brew install maven

    以上安装成功后,即可进行项目构建

    mvn clean install

    配置 maven 私有源移步至 Maven 配置,如果是通过 brew 安装,默认目录为 /usr/local/Cellar/maven/3.x.x/libexec/conf/settings.xml

    二、定制化开发

    针对前端代码生产需要修改的文件及目录包括 Java 文件:modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java 模板目录:modules/openapi-generator/src/main/resources/typescript-axios/ 修改后需要重新构建

    mvn clean package -Dmaven.test.skip=true

    三、代码生成

    项目构建完成后,通过以下命令生成代码,其中 typescript-axios-target-es6.json 为配置文件内容

    {
      "npmRepository": "http://private.npm.com/repository",
      "snapshot": false,
      "supportsES6": true
    }
    java -jar ./modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -i ~/some-project.yaml 
        -g typescript-axios 
        -c typescript-axios-target-es6.json 
        --group-id groupId 
        --artifact-id some-project 
        --skip-validate-spec 
        -o ./some-project-api
    
    -g 生成模式 -c 生成所需配置文件 --group-id 传入 groupId --artifact-id 传入 artifactId -o 输出项目 --skip-validate-spec 跳过校验 -DdebugModels debug 模式,可选

    执行后生成的前端项目结构

    .
    ├── README.md
    ├── api.ts
    ├── base.ts
    ├── configuration.ts
    ├── dist
    │   ├── api.d.ts
    │   ├── api.js
    │   ├── base.d.ts
    │   ├── base.js
    │   ├── configuration.d.ts
    │   ├── configuration.js
    │   ├── index.d.ts
    │   └── index.js
    ├── git_push.sh
    ├── index.ts
    ├── package-lock.json
    ├── package.json
    └── tsconfig.json
    
    1 directory, 17 files

    四、npm 发布

    项目生成后,进入项目目录,手动生成 npm publish 需要的配置文件,安装依赖以及构建 .npmignore

    .*.swp
    ._*
    .DS_Store
    .git
    .hg
    .npmrc
    .lock-wscript
    .svn
    .wafpickle-*
    config.gypi
    CVS
    npm-debug.log
    cp .npmignore ./some-project-api && cd some-project-api && npm i && npm run build

    发布 npm package 到 npm 私服

    # npm login 为前提
    npm publish

    五、使用方法

    项目中使用

    npm i -S some-project-api

    /src/apis/index.js 文件中只需要修改项目对应的 npm 名称即可,其他无需操心

    import request from '@common/request' // 引入 axios 实例
    import { ApiFactory } from 'some-project-api'
    
    export default = ApiFactory({}, process.env.VUE_APP_BASE_URL, request)
    // 新模板为 VUE_APP_BASE_URL 现用模板为API_BASE_URL
    
    1. 在Vue文件中引入 import API from ''../../apis'' 即可通过 **API.getgetBusiness** 调用 api
    import API from '@/api'
    export default {
      name: 'demo',
      data() {
        return {
          res: ''
        }
      },
      methods: {
        async getBusiness() {
          // 根据接口 operationId 直接调用
          const res = await API.getBusiness()
          this.res = res
        }
      }
    }
    </script>
    

    上面提到 ts 类型推导,其实就是借助 VSCode 先天支持 ts 的特性,根据 interface 声明 跳入 npm package 的源码中,源码中对每个方法的传参进行了详细的说明, 如果不习惯或者觉得声明不详细也可通过 方法注释中的 @catalog 一键打开 catalog 中对应的方法。看图 =。=

    v2-435706b60a5356af422e07885fe834b6_b.jpg

    v2-144e355e56d78d218cc64cf949c62a8d_b.jpg

    v2-59b1ac18f65c04d9e5c4fe9c590674f3_b.jpg

    v2-968632961a69c8057234c5178f03e190_b.jpg
    1. 在实际开发过程中,后端同学可能会对 api-spec 修改,当后端修改提交后,pipeline 会重新生成构建发布,这时需要后端同学告知前端同学,前端同学重新安装 api package
    npm i -S some-project-api@latest

    避免出现问题直接使用 @latest ,这里稍微科普下 package.json version 相关的知识点

    "dependencies": {
        "vue": "3.0.0",
        "vuex": "*",
        "react": "16.x",
        "typescript": "~5.4.6",
        "redux": "^14.0.0"
     }
    
    前面三个很容易理解: - "vue": "3.0.0": 固定版本号 - "vuex": "*": 任意版本(>=0.0.0) - "react": "16.x": 匹配主要版本(>=16.0.0 <17.0.0) - "react": "16.3.x": 匹配主要版本和次要版本(>=16.3.0 <16.4.0
    再来看看后面两个,版本号中引用了 ~^ 符号: - ~: 当安装依赖时获取到有新版本时,安装到 x.y.zz 的最新的版本。即保持主版本号、次版本号不变的情况下,保持修订号的最新版本。 - ^: 当安装依赖时获取到有新版本时,安装到 x.y.zyz 都为最新版本。 即保持主版本号不变的情况下,保持次版本号、修订版本号为最新版本。
    package.json 文件中最常见的应该是 "yargs": "^14.0.0" 这种格式的 依赖, 因为我们在使用 npm install package 安装包时,npm 默认安装当前最新版本,然后在所安装的版本号前加 ^ 号。

    六、遇到的问题

    在测试使用过程中发现几个问题

    • 对于 @/apis导入 api,不使用相对路径会丢失类型提示,使用 ../../apis才可以
    • VSCode 提示在 .js 文件和 .vue 文件下行为不一致,在 .js 文件中跳转和提示都准确,按 opt + 点击 function name 跳转会准确的定位到这个 function下,在 .vue 文件中提示准确跳转不准确,按 opt + 点击function name,跳转的 function name 会有误差

    添加 jsconfig.json 文件,加入相应的配置即可解决以上问题。 Attention !jsconfig.json 为 VSCode 特有,当然不排除其他编辑器借鉴,所以一般只有在 VSCode 中才能工作。

    jsconfig.json

    {
      "compilerOptions": {
        "baseUrl": ".",
        "paths": {
          "@/*": [
            "src/*"
          ],
          "@common/*": [
            "src/common/*"
          ],
          "@apis": [
            "src/apis"
          ],
          "@assets": [
            "src/assets"
          ],
          "@common": [
            "src/common"
          ],
          "@components": [
            "src/components"
          ],
          "@views": [
            "src/views"
          ],
          "@utils": [
            "src/utils"
          ]
        }
      },
      "include": [
        "./src/**/*.vue",
        "./src/**/*.js",
      ],
      "exclude": [
        "node_modules"
      ]
    }
    

    关于jsconfig.json的更多信息,可以查看 vscode文档相关说明。

    https://kingzez.com/codegen-for-fe/kingzez.com
    展开全文
  • 然而,没过几天,某个一直正常的功能突然不能使用了,你开始调试,发现原先整数类型的age突然变成字符串类型了,你找到后台,后台同学来了一句“前端不检验吗?”,你心态再一次崩溃了… 思考 下次会改
  • 1 分析公司要求h5小游戏之前,想要的一款类似成语小秀才的小游戏。学了一段时间ccc后回头填坑,尝试仿制一波,刚好发现论坛有套开源的ui素材。花了两天的demo。完后发现最难的是生成随机关卡,由于益智类小...
  • 嵌套JSON问题

    2020-12-08 19:23:19
    <div><p>kafka生产的嵌套JSON,像这样的,如果要根据type的内容,把data的数据写进ck,要怎么啊。 <p>{ "database": "test", "table": "dim_table1",...
  • 最近在一个 JS + TS 项目,使用 JEST 测试,我本地的配置文件如下 module.exports = { roots: [ '<rootDir>/test', ], testRegex: 'test/(.+)\\.test\\.(jsx?|tsx?)$', transform: { '^.+\\.[jt]sx?...
  • 兄弟们,话就不多说了,作为代码得搬运工,写的时候参考一下就行了,不讲解 // 先转json再转相关集合 String childrenStr = FastJsonUtils.jsonStr(roleVoMap.get("children")); List<ParkModuleFrontVo&...
  • 用Vue项目 由于用的ts语法 在想要向json对象中插入一条新的键值对时遇到TS7053错误 是类型申明没有匹配的问题可以这样解决 参考链接:...
  • 1、用vue-cli搭建起一个hello-world的工程,不任何修改。 2、引入Axios。 在入口文件main.ts中引入Axios import Axios from 'axios' import VueAxios from 'vue-axios' …… Vue.use(VueAxios, Axios); ……...
  • 在这里面可以一些关于ts文件的配置,具体配置如下 { "compilerOptions": { /* Basic Options */ // "incremental": true, /* TS编译器在第一次编译之后会生成一个存储编译信息的文件,第二次编译
  • 最近考虑到老项目代码的可维护性以及稳定性,决定引入ts做规范检测。因为介绍的东西比较基础,如果介绍的不对,麻烦指正。 1. 简介 TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和对 ES6 的支持。网上...
  • 它实际上是什么的? 好吧,不是很多! 它会: 安装dev的依赖关系:, 和 (跨平台rm -rf )。 创建npm脚本以使用TS编译器构建项目,并使用ts-node运行它。 构建文件也将在package.json正确声明,并添加到....
  • Egg TS 改造总结

    2021-01-01 22:42:16
    <div><p>最近参与了 egg 的 ts 支持改造工作,写篇文章总结一二。 在上一篇文章 <a href="https://github.com/whxaxes/blog/issues/11">Typescript 在 Egg + Vue 应用中的实践</a> 中在 Egg 项目中了...
  • 在 vue 项目中使用 tslint 来代码检查,但当执行 npx tslint -p tsconfig.json 时,发现 tslint 并不能对 vue 文件进行检查。 受到 vue-cli3 中的启发,发现 @vue/cli-plugin-typescript/lib/tslint.js 中写了个...
  • ts 模板库文件_zybiao

    2021-01-14 04:47:15
    kbone-ts-template使用的工具和库创建项目关于 vue-cli 3.x 的使用这里不介绍,请移步至Vue CLI官方文档查看使用 vue-cli 3.x 可视化页面根据自己的需求创建一个 ts 空项目即可因为我们是用 ts 开发微信小程序,...
  • TypeScript仅允许您设置目标。... 但是您必须这样,因为Node逐步支持ES6功能,并且某些功能。 因此, 用于转换代码。 运行ts-babel进行编译。 编译器选项是从tsconfig.json自动获取的。 在package.json指定。 有关
  • Practices-ts-源码

    2021-04-10 20:27:37
    下载代码后,我们要的第一件事是执行命令: npm install 该命令将下载运行项目所需的所有节点模块。 当我完成安装node_modules时,我们可以使用以下命令运行项目 npm start 为此,请记住您必须在package.json...
  • 有很多同学看了本系列的前几篇之后建议我暂时先不用TS,于是小肆之后将把TS换成JS继续下面的文章。今天给大家带来项目中非常重要的一环,配置Axios,一起来看看吧。axios 简介首先要明白的是axios是什么:axios是基于...
  • sed -i ' ' ' s/vue-lib/vue-global-events/g ' README.md package.json .github/workflows/release-tag.yml size-checks/ * 圈CI 添加项目: : 选中基于派生拉取请求构建: : 选中自动取消冗余构建(相同位置) ...
  • svelte-ts-prj-源码

    2021-03-13 01:56:39
    要允许来自其他计算机的连接,请编辑package.json中的sirv命令以包括选项--host 0.0.0.0 。 如果您使用的是 ,建议您安装官方扩展 。 如果使用其他编辑器,则可能需要安装插件才能突出显示语法和智能感知。 以生产...
  • 安装 npm install standard-engine-ts 用法 #!/usr/bin/env node 'use strict' const path = require ( 'path' ) const eslint = require ( 'eslint' ) const { run } = require ( 'standard-engine-ts' ) ...
  • 由于我们的项目是使用 typescript-library-starter 初始化的,已经内置了 Jest 的安装,但是安装的版本却不是最新的,我们可以对 package.json 中的相关依赖版本修改,重新安装来进行更新。 { "@typ
  • e2e:用来自动化测试的 node_modules:存放第三方依赖包 src:应用源代码 .editorconfig:编辑器配置文件 .gitignore:git配置文件 package-lock.json:锁定了npm install下载的依赖包的版本 package.json:npm配置文档 ...
  • 到目前为止,阿尔法之前了什么 EDI X12支持; antlr4ts中的解析器功能齐全 文件物件模型 验证器 已知的待办事项 在发布Alpha版之前 完成实现元素选择器查询语言。 完整的初始文档 测试版发布之前 提高解析/处理...
  • 该插件将平台集成到了homebridge中,因此,如果您不想这样,就不必经过homeassantant了(这并不意味着有什么问题)。 它利用了esphome的本机API,因此您可以期望所有二进制传感器的即时更新。 支持的组件包括: ...
  • 当我尝试将vue、vuex 使用CDN 导入的时候了如下操作 + 删除了 **package.json** 中的依赖 + 在 **index.html ** 中写入cdn ![图片说明](https://img-ask.csdn.net/upload/201912/23/1577067141_320744.png) ...
  • eslint 格式化 js 代码本文用 Vue 项目示范。利用 Vue CLI 创建项目时要将 ESlint 选上,下载完依赖后,用 VSCode 打开项目。安装插件 ESLint,然后 File -> Preference-> Settings(如果装了中文插件包应该...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

ts做json