我在这里查了https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md这是TypeScript语言规范,但我看不出有什么可以声明函数的返回类型.我在下面的代码中展示了我的期望:greet(name:string) :string {}
class Greeter {
greeting: string;
constructor (message: string) {
this.greeting = message;
}
greet() : string{
return "Hello, " + this.greeting;
}
}
Run Code Online (Sandbox Code Playgroud)
我看到我们可以使用一些东西,(name:string) => any但它们主要用于传递回调函数:
function vote(candidate: string, callback: (result: string) => any) {
// ...
}
Run Code Online (Sandbox Code Playgroud) 我有 2 个 docker 容器在我的 Mac 主机上运行 - 容器 1 是来自 Docker Hub 的 Jenkins,而容器 2 是来自 Docker Hub 的 SonarQube。我有两个容器成功运行。我可以通过访问从我的主机访问 Jenkins http://localhost:8080/,我可以通过访问访问我的 SonarQube http://localhost:9000/。
Jenkins 容器是这样启动的:
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:latest
Run Code Online (Sandbox Code Playgroud)
SonarQube 容器是这样启动的:
docker run -d -p 9000:9000 sonarqube
Run Code Online (Sandbox Code Playgroud)
现在我想让每个容器相互通信,所以我需要向每个容器提供另一个容器的 IP 地址。
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
Run Code Online (Sandbox Code Playgroud)
这将返回172.17.0.2Jenkins 容器和172.17.0.3SonarQube 容器的 IP 地址。但是当我尝试从我的主机访问 Jenkins 容器时,http://172.17.0.2:8080我收到请求超时。当我尝试从我的主机访问 SonarQube 容器时,会发生同样的事情 …
我是TypeScript(和JavaScript)的新手,所以这可能很明显,但是我不了解拥有诸如ts-jest之类的预处理模块来针对TypeScript代码运行Jest测试的意义。我正在Node上开发一个TypeScript项目,并且正在使用Jest测试所有内容,到目前为止效果很好。
我将我的TypeScript代码(和测试)转换为JavaScript(ES5),然后使用Jest将Jest与该ES5 JavaScript进行对比-一切都很好,不需要ts-jest。
那么使用ts-jest有什么意义呢?换句话说-在什么情况下我会使用它?
我已经看到类似这里的建议,使用ts-jest来“预处理打字稿文件”,但我不明白。我认为TypeScript的全部意义在于它可以为您处理所有这些事情,那么为什么还要使用ts-jest单独进行处理呢?另外,没有它我也很好。
也许我没有得到:
这是我的tsconfig.json:
{
"compilerOptions": {
"strictNullChecks": true,
"noImplicitAny": true,
"moduleResolution": "node",
"target": "es5",
"lib": [
"es6"
]
},
"include": [
"src/**/*",
"test/**/*",
],
}
Run Code Online (Sandbox Code Playgroud)
这是我的package.json的一个片段:
{
"scripts": {
"test": "jest",
"dev": "nodemon ./src/app",
"start": "node ./src/app"
},
"devDependencies": {
"@types/express": "^4.16.0",
"@types/jest": "^23.1.1",
"jest": "^23.1.0",
"nodemon": "^1.17.5"
},
"jest": {
"transform": {},
"testRegex": "/test/.*\\.(ts|tsx|js)$"
}
}
Run Code Online (Sandbox Code Playgroud) 我对 Docker 还很陌生。我有一个Dockerfile从以前的开发人员那里继承来的很长的东西,它有很多错误,我正在尝试将其恢复到工作点。我注释掉了文件的大部分内容,除了第一行:
FROM ubuntu:14.04
Run Code Online (Sandbox Code Playgroud)
我做了以下事情:
docker build -t pm .构建图像 - 这是有效的,因为我在执行时可以看到图像docker imagesdocker run <image-id>返回没有错误或任何消息。现在我期望从图像创建容器并启动。但是当我执行 a 时,docker ps -a它显示容器已退出:Run Code Online (Sandbox Code Playgroud)CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb05f9727f516 f216cfb59484 "/bin/bash" 大约一分钟前 退出 (0) 大约一分钟前
lucid_shirley
不知道为什么我无法获得正在运行的容器以及为什么它在docker run命令之后一直停止。
docker logs <container_id>不显示任何内容 - 它只是返回而没有任何输出。我有一种情况,tslint 正在处理一些 VS Code 项目,而没有处理其他项目。它工作的项目来自带有 TypeScript 修改的create-react-app。但是当我创建一个新的 TypeScript(非 React)项目并且只是从 React 应用程序复制 tslint.json 时,tslint 不起作用(没有错误/警告 - 没有)。
这是tslint.json我用于两个应用程序的:
{
"extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"rules": {
"ordered-imports": false
}
}
Run Code Online (Sandbox Code Playgroud)
这是我使用有效的 tslint 创建一个新的 TypeScript React 项目的方式:
create-react-app <app-name> --scripts-version=react-scripts-ts
Run Code Online (Sandbox Code Playgroud)
我还检查了我的 VS Code 设置,并为两个项目设置了以下内容:
"tslint.enable": true,
Run Code Online (Sandbox Code Playgroud)
tsconfig.json 对于“tslint working”项目(由 create-react-app 生成):
{
"compilerOptions": {
"baseUrl": ".",
"outDir": "build/dist",
"module": "esnext",
"target": "es5",
"lib": ["es6", "dom"],
"sourceMap": true,
"allowJs": true,
"jsx": "react", …Run Code Online (Sandbox Code Playgroud) 我试图用等待换它在我docker-compose.yaml等待的MySQL是创建依赖于它的服务前准备好。这是我的docker-compose.yaml:
version: '3.5'
services:
mysql:
image: mysql:5.6
ports:
- "3307:3306"
networks:
- integration-tests
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=root
- MYSQL_ROOT_PASSWORD=mypassword
entrypoint: ./wait-for-it.sh mysql:3306
networks:
integration-tests:
name: integration-tests
Run Code Online (Sandbox Code Playgroud)
尝试使用 docker-compose 运行此错误时出现此错误:
启动集成测试_mysql_1 ...错误
错误:对于集成测试_mysql_1 无法启动服务 mysql:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./wait-for-it.sh\”:stat ./wait-for- it.sh:没有这样的文件或目录”:未知
错误:对于 mysql 无法启动服务 mysql:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./wait-for-it.sh\”:stat ./wait-for-it。 sh:没有这样的文件或目录”:未知错误:启动项目时遇到错误。
该wait-for-it.sh脚本与我的docker-compose.yaml文件处于同一级别,所以我不明白为什么找不到它。
docker ×3
typescript ×3
dockerfile ×1
javascript ×1
jenkins ×1
jestjs ×1
sonarqube ×1
tslint ×1
unit-testing ×1