js对象生成ts类型声明

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>js对象生成ts类型</title>
  <style>
    .txt {
      width: 40%;
      height: 200px;
    }
    .btn{
      margin: 10px 0;
    }
  </style>
</head>

<body>
  <textarea class="txt"></textarea>
  <div class="btn">
    <button>js对象生成ts类型</button>
  </div>
  <div>
    <textarea class="txt"></textarea>
  </div>

  <script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.js"></script>
  <script>
    const txtEl = document.querySelector('textarea');
    const btn = document.querySelector('button');
    txtEl.value = `{
  name:'abc',
  age:123
}`;
    btn.onclick = async () => {
      const codeStr = txtEl.value.replace(/\s+/g, "");
      const temp = `var codeTemp = ${codeStr}`;
      eval(temp);
      const code = JSON.stringify(codeTemp);
      const url = 'http://dshvv.com:7001/json2ts';
      const param = { code }
      const { data:sourceData,data: { data } } = await axios.post(url, param);
      const codeEl = document.querySelectorAll('textarea')[1];
      codeEl.value = data;
    }
  </script>
</body>

</html>

猜你喜欢

转载自www.cnblogs.com/dshvv/p/12589329.html