- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有可能给一个具有导出类型的文件,这些类型是否可以从泛型中提取到计算类型?
function example() {
return {
foo: 'hi',
bar: true,
baz: 1
};
}
export type Signature = ReturnType<typeof example>;
对此:
export type Signature = {
foo: string;
bar: boolean;
baz: number;
}
我不相信
tsc
cli 会这样做,我不确定这个过程会被称为什么。
tsc
可以创建这个导出吗?
最佳答案
调查这个问题,而不复制 VSCode 的 hover.ts
,我发现这个问题的一个,如果不是唯一的,答案是:
从 tsserver
中提取悬停“quickinfo”
您需要将文件中的行和字符偏移量传达给服务器。应该可以用abstract syntax tree (AST)在 .ts
为了那个原因。我用 bash 写了一个客户端。下面附上,它支持从列计算字符偏移量(如 VSCode 状态栏中所示)。来自源代码运行的日志和“签名”一词上的文档位置紧随其后,结尾非常接近您想要的提取。
$ (prepared=('open -s #.ts -i file' 'quickinfo -s #.ts -i file -n 9 -i line -n 20 -i _column_')&&. $(which tsssh))
ts < open -s #.ts -i file
{"seq": 1, "type": "request", "command": "open", "arguments": {"file": "#.ts"}}
ts < quickinfo -s #.ts -i file -n 9 -i line -n 20 -i _column_
{"seq": 1, "type": "request", "command": "quickinfo", "arguments": {"file": "#.ts", "line": 9, "offset": 19}}
event #0
event: typingsInstallerPid
body: {"pid": 65341}
response #0 (1)
command: quickinfo
body: {"kind": "type", "kindModifiers": "export", "start": {"line": 9, "offset": 13}, "end": {"line": 9, "offset": 22}, "displayString": "type Signature = {\n foo: string;\n bar: boolean;\n baz: number;\n}", "documentation": "", "tags": []}
displayString: type Signature = {
foo: string;
bar: boolean;
baz: number;
}
bash -O cmdhist -O lithist
与 macports 和其他各种商店.. tsserver=./node_modules/typescript/bin/tsserver tsssh
.. histfile= path/to/tsssh
禁用历史记录.多个“准备”可以指定为 (prepared=("first" ... "last")&&. path/to/tsssh)
#!/usr/bin/env bash
( # Quick and dirty client for https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29..
# Relies heavily on prerequisite http://kmkeen.com/jshon/, and compatible bash and gawk, while tput and tee could be cut out I guess..
# Developed on macOS 10.13.6 in version 5.0.16 `bash -O cmdhist -O lithist` with macports, and various other shopt..
# NB: You need to poll event/response manually by sending empty commandlines. Exit with kill -sigint , typically ctrl+C..
# Run in local repo like `tsserver=./node_modules/typescript/bin/tsserver tsssh`..
# Disable history with `histfile='' path/to/tsssh`. Multiple "prepared" can be specified as `(prepared=("first" ... "last")&&. path/to/tsssh)`
# Copyright 2020 Viktor Bergquist (vike2000@gmail.com), license https://creativecommons.org/licenses/by-sa/4.0/
HISTFILE=${histfile-.tsssh_history} &&
{ ((\!-( x = xtrace )))||set -x ;} && ((!errexit))||set -e &&
state()(set +x;tput setaf $1;echo "${*:2}";tput sgr0;((\!-x))||set -x) >&2 && trap 'state 1 $?: "$BASH_COMMAND"' err &&
[[ ! $HISTFILE ]]||{ h=$HISTSIZE&&HISTSIZE=1&&set -o history&&HISTSIZE=$h&&history -s ''&&{ history -r "$HISTFILE"||:;};}&&
coproc ts (${tsserver:-tsserver}) &&set -o pipefail&&command sleep 1 &&
show(){ set +x; f=$1&&shift && i=$(cat) && declare -n n&&for n;do
n=$(((\!-x))||set -x; jshon <<<"$i" -e "${!n}" $f);((e=$?)) || echo "${!n}: $n"; done; ((\!-x))||set -x; return $e;} &&
extract(){ show "$@";} >/dev/null &&
compact()( "$@"|gawk -vORS= '{sub("^\\s+",!m[0]?"":" ")}1;{match($0,",$",m)}END{printf"\n"}') &&
function check(){ while {
read -rt.1 -d$'\r' h&&[[ $h =~ Content-Length:\ ([0-9]+) ]]&&read -r$t -N3&&read -r$t -N$((${BASH_REMATCH[1]}-1)) a;} <&${ts[0]};do
#set +x;echo 'ts > '"$a";((\!-x))||set -x
<<<"$a" extract -u type seq &&case $type in
( event)state 2 $type \#$seq
<<<"$a" show -u event ;;&
(response)<<<"$a" extract -u success request_seq&&case $success in
( false)state 1 $type \#$seq "($request_seq)"
<<<"$a" show -u command message ;;
( true)state 2 $type \#$seq "($request_seq)"
<<<"$a" show -u command message metadata 2>/dev/null ;;
( *)state 1 "unknown success: $success" ;esac ;&
( event)<<<"$a" compact show '' body ;! [[ $type = response && $success = true ]]||case $command in
( *)<<<"$a" extract '' body ;;&
( quickinfo) <<< "$body" show -u displayString ;esac ;;
( *)state 1 "unknown type: $type" ;esac ;done;} &&
seq=0 && for p in ${!prepared[@]} -1;do for fd in <(echo "${prepared[p]}") 0;do fd="${fd##*/}"; (((p<0)!=(0<fd)))||continue
while check <&-; set +x; read -p 'ts < ' -era Q; do
((\!${#Q[*]}))&&{ tput -S<<<$'cuu1\nel'
((\!-x))||set -x;} ||
{ ((\!-x))||set -x
history -s "${Q[*]}"&&{ [[ ! $HISTFILE ]]||{ [[ ! -a $HISTFILE ]]&&history -w "$HISTFILE"||history -a "$HISTFILE";};} &&
d=$(compact jshon <<<{} -n$((++seq)) -i seq -s request -i type -s "$Q" -i command -n {} "${Q[@]:1}" -i arguments)
A=$(compact jshon <<<{} "${Q[@]:1}")
! <<<"$A" extract -u file line _column_ 2>/dev/null ||
{ o=$(gawk -vT="${tabs:-4}" -vC="$_column_" FNR=="$line"'{
t=-1;for(o=0;o<=length();o++){t++;if("\t"==substr($0,o,1)){t+=T-1;t-=t%T}if(t>=C)break}print o-1
}' "$file") &&
d=$(<<<"$d" compact jshon -e arguments -d _column_ -n "$o" -i offset -p);}
tee <<<"$d" /dev/stderr >&${ts[1]};}
done<&$fd;done;done;set +x;echo bye) #ts < eg: reload -s index.ts -i file ^M quickinfo -s index.ts -i file -n 4 -i line -n 7 -i _column_
"compilerOptions":{"noErrorTruncation":true}
来防止您提到的某些“线索”。在
tsconfig.json
:)
关于typescript - 在文件中创建计算类型的导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63044623/
是否可以调整此代码以导出foreach循环外的所有行: 这工作正常(内部循环): $vms = Get-VM | Where { $_.State –eq ‘Running’ } | Select-
我试图将我的 bundle.js 引入我的 Node 服务器,但显然 webpack 包在顶部的所有包代码之前缺少一个 module.exports =。 我可以手动将 module.exports
我有一个 android 项目,其中包含一个库项目。在这个库项目中,我包含了许多可绘制对象和动画。 问题是,当我将主项目导出为 .apk 时,它包括所有可绘制对象和动画,甚至是主项目中未使用的对象。
我的一个 mysql 用户以这种方式耗尽了他的生产数据库: 他将所有数据导出到转储文件,然后删除所有内容,然后将数据导入回数据库。他从 Innodb 大表空间中保存了一些 Gig(我不知道他为什么这样
我正在 pimcore 中创建一个新站点。有没有办法导出/导入 pimcore 站点的完整数据,以便我可以导出 xml/csv 格式的 pimcore 数据进行必要的更改,然后将其导入回来? 最佳答案
我有以下静态函数: static inline HandVal StdDeck_StdRules_EVAL_N( StdDeck_CardMask cards, int n
因为我更新了 angular cli 和 nestjs 版本,所以我收到了数百条警告,提示我无法找到我的自定义类型定义和接口(interface)。但是我的nestjs api仍然可以正常工作。 我正
Eclipse 的搜索结果 View 以其树状结构非常方便。有没有办法将这些结果导出为可读的文本格式或将它们保存到文件中以备后用? 我试过使用复制和粘贴,但生成的文本格式远不可读。 最佳答案 不,我认
我想在用户在 Chrome 中打开页面时使用 WebP否则它应该是 png。 我找到了这段代码: var isChrome = !!window.chrome && !!window.chrome.w
您好,我正在尝试根据“上次登录”导出 AD 用户列表 我已经使用基本 powershell 编写了脚本,但是如果有人可以使用“AzureAD 到 Powershell” 命令找到解决方案,我会很感兴趣
有没有办法启用 Stockchart 的导出?我知道这对于普通图表是可行的,但对于股票图表,当尝试启用导出模式时,我得到了未定义, 我尝试过:chart.export.enabled=true;和ch
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我正在尝试学习如何使用命令行将数据导入/导出到 Oracle。根据我的发现,看起来我应该使用 sqlldr.exe 文件来导入和导出,但我不确定除了 userid 之外还需要什么参数。谁能给我解释一下
您好,我正在尝试根据“上次登录”导出 AD 用户列表 我已经使用基本 powershell 编写了脚本,但是如果有人可以使用“AzureAD 到 Powershell” 命令找到解决方案,我会很感兴趣
我想生成一个 PDF,它将以表格格式显示查询集的输出,例如: query = ModelA.objects.filter(p_id=100) class ModelA(models.Model):
我有一个数据库代理,可以从 IBM Notes 数据生成 Word 文档。我正在使用 Java2Word API 来实现此目的,但不幸的是,该 API 几乎没有文档,而且我找不到任何有关表格格式(大小
我尝试将 Java 程序从 Eclipse 导出到 .jar 文件,但遇到了问题。它运行良好,但由于某种原因它没有找到它应该从中获取数据的文本文件。如果有人能帮忙解决这个问题,我将非常感激。 最佳答案
我正在尝试学习如何使用命令行将数据导入/导出到 Oracle。根据我的发现,看起来我应该使用 sqlldr.exe 文件来导入和导出,但我不确定除了 userid 之外还需要什么参数。谁能给我解释一下
使用LLVM / Clang编译到WebAssembly的默认代码生成将导出内存,并完全忽略表。 使用clang(--target=wasm32-unknown-unknown-wasm)定位Web组
我正在尝试在 HSQL 数据库中重新创建一个 oracle 数据库。 这是为了在本地开发人员系统上进行更好的单元测试。 我需要知道的是,是否有任何我可以在 oracle 服务器/客户端中使用的工具/命
我是一名优秀的程序员,十分优秀!