質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

1014閲覧

TypeScript で型指定が長すぎるので、短く記述したい

allundo

総合スコア6

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/03/24 22:14

以下の質問の続きです。

TypeScript で型指定をしたが、異なる型定義ファイルを参照してしまう

前提・実現したいこと

Google Apps Script を TypeScript で書くべく、下記のサイトを参考に開発環境を作りました。

clasp が Typescript をサポートした! - Qiita

zsh

1$ mkdir clasp-ts-sample 2$ cd clasp-ts-sample 3$ npm init -y 4$ npm install @google/clasp tslint -D 5$ npm install @types/google-apps-script -S 6$ node_modules/.bin/tslint --init 7$ node_modules/.bin/clasp login 8$ node_modules/.bin/clasp create clasp-ts-sample --rootDir ./src 9> sheets

tsconfig.json

json

1{ 2 "compilerOptions": { 3 "lib": ["esnext"], 4 "experimentalDecorators": true 5 } 6}

発生している問題・エラーメッセージ

tslint が型を認識しません。

typescript

1function main() { 2 const range: Range = SpreadsheetApp.getActiveSheet().getSelection().getActiveRange(); 3}

エラーメッセージ

Cannot find name 'Range'.ts(2304)

以下のように型を指定すると、エラーは出ませんが、毎度ここまで書くのは厳しいです。

typescript

1function main() { 2 const range: GoogleAppsScript.Spreadsheet.Range = SpreadsheetApp.getActiveSheet().getSelection().getActiveRange(); 3}

試したこと

名前空間 辺りの概念が近いのかと思い、調べましたが、型に関しての情報が見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

  • VSCode 1.43.0
  • Node.js: 12.8.1
  • V8: 7.8.279.23-electron.0
  • OS: Darwin x64 19.3.0
  • tslint: 6.1.0
  • clasp: 2.3.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これはメソッドチェインです。GoogleAppsScript というオブジェクトの getActiveSheet() を呼び出し、その戻り値の getSelection() を呼び出し、その戻り値の getActiveRange() を呼び出しています。

だから省略できません。関数に入れましょう。

TypeScript

1const getActiveRange : Range = () => { 2 return GoogleAppsScript.getActiveSheet().getSelection().getActiveRange(); 3};

追記

質問を読み間違えていたようです。
型名を短くしたいならエイリアスを使いましょう。

TypeScript

1type 型名 =;

投稿2020/03/25 00:10

編集2020/03/25 00:17
Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/03/25 00:13

そちらではなくて、「GoogleAppsScript.Spreadsheet.Range」が長い、という方が質問内容なのではないでしょうか。
Zuishin

2020/03/25 00:15

よく読むとそうですね。ありがとうございます。
allundo

2020/03/26 12:13

ご回答ありがとうございました! やはり、長くなってしまう型に関しては、 type でエイリアスを作ってしまうのが常套手段なのでしょうか?? TypeScript 開発者の皆さんがどのように対処されているか、気になるところではあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問