如何用打字稿创建文件,该文件既可以从另一个模块导入,也可以与#include <iostream>
#include <string>
using namespace std;
int main()
{
int t,k=0;
cin>>t;
while(k<t)
{
int n,q,i,j,cnt=0,temp;
cin>>n>>q;
string arr;
cin>>arr;
for(i=0; i<q; i++)
{
int l, r, xoring=0;
cin>>l>>r;
temp=0;
for(j=l-1; j<r; j++)
{
xoring^=(arr[j]-'A'+1);
if(xoring==0)
{
temp++;
}
}
if(temp==(r-l+1)/2)
{
cnt++;
}
}
cout<<"Case #"<<k+1<<": "<<cnt<<endl;
k++;
}
return 0;
}
一起使用。例如:
index.ts :
<script src=""/>
tsconfig.json :
export class A {
echo() {
console.log('a');
}
}
如何生成这样的输出:
{
"compilerOptions": {
"lib": ["es2017", "dom"],
"target": "es5",
"module": "commonjs",
},
}
我还希望我的编译器使用以下命令生成class A {
echo() {
console.log('a');
}
}
if (typeof exports !== 'undefined) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.A = A;
// don't expose to global scope if module is imported via webpack or etc
} else if (typeof window !== 'undefined') {
window.A = A
}
:
index.d.ts
我尝试了什么:
export declare class A {
echo()
}
文件的if
内部使用导出文件.ts
中尝试了不同的module
:我还认为我可以创建2 tsconfig并运行tsc 2次。但是当我的tsconfig.json
包含index.ts
时,如果没有某种导出方法就无法生成js文件。例如。使用export
仍会生成
"module"="none"
我明白了
Object.defineProperty(exports, "__esModule", { value: true });`
我看到atm的唯一方法是添加webpack并创建一个具有import语句和exports is not defined
分配的单独文件main.js
。但是与库大小相比,它有很多开销代码。
答案 0 :(得分:1)
您可以在iife
模式下尝试rollup:
$ npm i rollup typescript rollup-plugin-typescript rollup-plugin-uglify
$ ./node_modules/.bin/rollup -c rollup.config.js
rollup.config.js :
import typescript from 'rollup-plugin-typescript';
import { uglify } from "rollup-plugin-uglify";
export default {
input: './index.ts',
output: {file: './browser.js', format: 'iife', name: 'myBundle'},
plugins: [
typescript(),
uglify()
]
}
index.ts :
// index.ts
export class A {
echo() {
console.log("a");
}
}
输出 browser.js :
var myBundle=function(o){"use strict";var n=(t.prototype.echo=function(){console.log("a")},t);function t(){}return o.A=n,o}({});