个人技术分享

解决node先console.log不能用

pnpm install -D tslib @types/node

tsconfig.json

{
  "compilerOptions": {
    "target": "es2020",
    "module": "commonjs",
    "lib": ["es2020"],
    "sourceMap": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "moduleResolution": "node",
    "baseUrl": "src",
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["dist", "node_modules"],
  "compileOnSave": false
}

Point

export class TPoint{
    x:number = 0;
    y:number = 0;
    constructor(x:number,y:number) {
        this.x = x;
        this.y = y;
    }
    getDistance(other:TPoint):number {
        let xDis = Math.abs(this.x - other.x);
        let yDis = Math.abs(this.y - other.y);
        return Math.sqrt(xDis*xDis + yDis*yDis);
        
    }
}

// let tpoint:TPoint = new TPoint(1,1)
// let tpoint2:TPoint = new TPoint(3,3)
// console.log(tpoint.getDistance(tpoint2));

Circle

import { TPoint } from "./tspoint";

class TCircle{
    radius: number = 0;
    point: TPoint;
    constructor(point: TPoint, radius: number) {
        this.radius = radius;
        this.point = point;
    }
    isInCircle(point: TPoint): boolean{
        let dis:number = this.point.getDistance(point)
        return dis <= this.radius;
    }
}

let point:TPoint = new TPoint(1,1)
let circle:TCircle = new TCircle(point, 1);
// let point2 = new Point(2,2)
// console.log(circle.isInCircle(point2));
// let point3 = new Point(1.5, 1.5)
// console.log(circle.isInCircle(point3));
let total = 10000000;
let count = 0;
for(let i = 0; i < total; i++){
    let x = Math.random() * 2;
    let y = Math.random() * 2;
    let pointTmp:TPoint = new TPoint(x,y);
    if(circle.isInCircle(pointTmp)){
        count++;
    }
}

console.log(count*4.0/total);