<!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>