- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想在我的 angular cli 项目中使用 Dropbox API,它是一个 javascript API。 API 附带 Typescript 定义。这是 dist 文件夹的样子。
他们有一个示例函数,该函数返回在 .ts
文件和 .js
文件中编写的文件列表:这是返回文件列表的 basic.js
和 basic.ts
:基本.js
:
和basic.ts
: 这是脚本运行的 html 文件以供引用:
<!doctype html>
<html>
<head>
<title>Dropbox TypeScript SDK</title>
<link rel="stylesheet" href="/styles.css">
<script src="/__build__/Dropbox-sdk.min.js"></script>
</head>
<body>
<!-- Example layout boilerplate -->
<header class="page-header">
<div class="container">
<nav>
<a href="/">
<h1>
<img src="https://cfl.dropboxstatic.com/static/images/brand/logotype_white-vflRG5Zd8.svg" class="logo" />
TypeScript SDK Examples
</h1>
</a>
<a href="https://github.com/dropbox/dropbox-sdk-js/tree/master/examples/typescript" class="view-source">View Source</a>
</nav>
<h2 class="code">
<a href="/">examples</a> / basic
</h2>
</div>
</header>
<!-- Example description and UI -->
<section class="container main">
<p>This example fetches the contents of your root Dropbox directory. It uses the <code>Dropbox.filesListFolder()</code> method [<a href="http://dropbox.github.io/dropbox-sdk-js/Dropbox.html#filesListFolder">docs</a>].</p>
<form onSubmit="return listFiles()">
<input type="text" id="access-token" placeholder="Access token" />
<button type="submit">Submit</button>
</form>
<!-- The files returned from the SDK will be added here -->
<ul id="files"></ul>
<p class="info">To obtain an access token for quick testing, you can go to <a href="https://dropbox.github.io/dropbox-api-v2-explorer/#files_list_folder" target="_blank">API Explorer</a> click the "Get Token" button on the top right, copy the token it creates and then paste it here.</p>
</section>
<!-- Scripts to run example -->
<script src="basic.js"></script>
</body>
</html>
如何使用此 API?我安装了 npm,但如何使用 .d.ts
文件?我应该为我的 Angular 项目使用 .ts
还是 .js
代码?我想在我的一个 typescript 组件中使用 api 吗?我不知道如何在我的 Angular 组件中包含定义和使用这些定义。我假设我包含 Dropbox-sdk.min.js
是我在 angular-cli.json
中的脚本,但是我在哪里或如何包含 .d.ts
文件,哪些是必需的?我在 dropbox github 上没有找到相关文档。 github 包含 typescript 和 javascript 使用的完整工作示例,但它是一个令人困惑的项目,因为它似乎将许多不同的东西混合到项目中,我不知道如何将它翻译成 angular-cli 应用程序 https://github.com/dropbox/dropbox-sdk-js如果我还应该在问题中包含其他内容,请告诉我!
最佳答案
我本来想说你应该能够像顶部的任何其他 Angular 接口(interface)一样导入它们,然后在你的组件中引用它们,但是看看他们的 repo 如何生成他们的类型看起来有点奇怪。几乎就像他们在声明使用生成器动态构建类型的模块一样。我对此一无所知。您总是可以尝试删除围绕此 Dropbox 类的模块包装器 - https://github.com/dropbox/dropbox-sdk-js/blob/master/generator/typescript/dropbox.d.ts
然后在第二行的 Dropbox 类定义之前添加“export”?
这里就像是去掉了所有的评论。
编辑 - 看起来您需要对这个文件、基类和接口(interface)执行相同的操作。 https://github.com/dropbox/dropbox-sdk-js/edit/master/generator/typescript/dropbox_types.d.ts导出接口(interface)和类并删除模块行。
然后您应该能够创建一个 index.ts 文件,从这两个文件中导出所有语句。
我觉得这不是正确的方法....但我不明白为什么它行不通。
export class Dropbox extends DropboxBase {
constructor(options: DropboxOptions);
public authTokenFromOauth1(arg: auth.TokenFromOAuth1Arg): Promise<auth.TokenFromOAuth1Result>;
public authTokenRevoke(arg: void): Promise<void>;
public filesAlphaGetMetadata(arg: files.AlphaGetMetadataArg): Promise<files.FileMetadataReference|files.FolderMetadataReference|files.DeletedMetadataReference>;
public filesAlphaUpload(arg: files.CommitInfoWithProperties): Promise<files.FileMetadata>;
public filesCopy(arg: files.RelocationArg): Promise<files.FileMetadataReference|files.FolderMetadataReference|files.DeletedMetadataReference>;
public filesCopyBatch(arg: files.RelocationBatchArg): Promise<files.RelocationBatchLaunch>;
public filesCopyBatchCheck(arg: async.PollArg): Promise<files.RelocationBatchJobStatus>;
public filesCopyReferenceGet(arg: files.GetCopyReferenceArg): Promise<files.GetCopyReferenceResult>;
public filesCopyReferenceSave(arg: files.SaveCopyReferenceArg): Promise<files.SaveCopyReferenceResult>;
public filesCopyV2(arg: files.RelocationArg): Promise<files.RelocationResult>;
public filesCreateFolder(arg: files.CreateFolderArg): Promise<files.FolderMetadata>;
public filesCreateFolderV2(arg: files.CreateFolderArg): Promise<files.CreateFolderResult>;
public filesDelete(arg: files.DeleteArg): Promise<files.FileMetadataReference|files.FolderMetadataReference|files.DeletedMetadataReference>;
public filesDeleteBatch(arg: files.DeleteBatchArg): Promise<files.DeleteBatchLaunch>;
public filesDeleteBatchCheck(arg: async.PollArg): Promise<files.DeleteBatchJobStatus>;
public filesDeleteV2(arg: files.DeleteArg): Promise<files.DeleteResult>;
public filesDownload(arg: files.DownloadArg): Promise<files.FileMetadata>;
public filesGetMetadata(arg: files.GetMetadataArg): Promise<files.FileMetadataReference|files.FolderMetadataReference|files.DeletedMetadataReference>;
public filesGetPreview(arg: files.PreviewArg): Promise<files.FileMetadata>;
public filesGetTemporaryLink(arg: files.GetTemporaryLinkArg): Promise<files.GetTemporaryLinkResult>;
public filesGetThumbnail(arg: files.ThumbnailArg): Promise<files.FileMetadata>;
public filesListFolder(arg: files.ListFolderArg): Promise<files.ListFolderResult>;
public filesListFolderContinue(arg: files.ListFolderContinueArg): Promise<files.ListFolderResult>;
public filesListFolderGetLatestCursor(arg: files.ListFolderArg): Promise<files.ListFolderGetLatestCursorResult>;
public filesListFolderLongpoll(arg: files.ListFolderLongpollArg): Promise<files.ListFolderLongpollResult>;
public filesListRevisions(arg: files.ListRevisionsArg): Promise<files.ListRevisionsResult>;
public filesMove(arg: files.RelocationArg): Promise<files.FileMetadataReference|files.FolderMetadataReference|files.DeletedMetadataReference>;
public filesMoveBatch(arg: files.RelocationBatchArg): Promise<files.RelocationBatchLaunch>;
public filesMoveBatchCheck(arg: async.PollArg): Promise<files.RelocationBatchJobStatus>;
public filesMoveV2(arg: files.RelocationArg): Promise<files.RelocationResult>;
public filesPermanentlyDelete(arg: files.DeleteArg): Promise<void>;
public filesPropertiesAdd(arg: files.PropertyGroupWithPath): Promise<void>;
public filesPropertiesOverwrite(arg: files.PropertyGroupWithPath): Promise<void>;
public filesPropertiesRemove(arg: files.RemovePropertiesArg): Promise<void>;
public filesPropertiesTemplateGet(arg: properties.GetPropertyTemplateArg): Promise<properties.GetPropertyTemplateResult>;
public filesPropertiesTemplateList(arg: void): Promise<properties.ListPropertyTemplateIds>;
public filesPropertiesUpdate(arg: files.UpdatePropertyGroupArg): Promise<void>;
public filesRestore(arg: files.RestoreArg): Promise<files.FileMetadata>;
public filesSaveUrl(arg: files.SaveUrlArg): Promise<files.SaveUrlResult>;
public filesSaveUrlCheckJobStatus(arg: async.PollArg): Promise<files.SaveUrlJobStatus>;
public filesSearch(arg: files.SearchArg): Promise<files.SearchResult>;
public filesUpload(arg: files.CommitInfo): Promise<files.FileMetadata>;
public filesUploadSessionAppend(arg: files.UploadSessionCursor): Promise<void>;
public filesUploadSessionAppendV2(arg: files.UploadSessionAppendArg): Promise<void>;
public filesUploadSessionFinish(arg: files.UploadSessionFinishArg): Promise<files.FileMetadata>;
public filesUploadSessionFinishBatch(arg: files.UploadSessionFinishBatchArg): Promise<files.UploadSessionFinishBatchLaunch>;
public filesUploadSessionFinishBatchCheck(arg: async.PollArg): Promise<files.UploadSessionFinishBatchJobStatus>;
public filesUploadSessionStart(arg: files.UploadSessionStartArg): Promise<files.UploadSessionStartResult>;
public paperDocsArchive(arg: paper.RefPaperDoc): Promise<void>;
public paperDocsDownload(arg: paper.PaperDocExport): Promise<paper.PaperDocExportResult>;
public paperDocsFolderUsersList(arg: paper.ListUsersOnFolderArgs): Promise<paper.ListUsersOnFolderResponse>;
public paperDocsFolderUsersListContinue(arg: paper.ListUsersOnFolderContinueArgs): Promise<paper.ListUsersOnFolderResponse>;
public paperDocsGetFolderInfo(arg: paper.RefPaperDoc): Promise<paper.FoldersContainingPaperDoc>;
public paperDocsList(arg: paper.ListPaperDocsArgs): Promise<paper.ListPaperDocsResponse>;
public paperDocsListContinue(arg: paper.ListPaperDocsContinueArgs): Promise<paper.ListPaperDocsResponse>;
public paperDocsPermanentlyDelete(arg: paper.RefPaperDoc): Promise<void>;
public paperDocsSharingPolicyGet(arg: paper.RefPaperDoc): Promise<paper.SharingPolicy>;
public paperDocsSharingPolicySet(arg: paper.PaperDocSharingPolicy): Promise<void>;
public paperDocsUsersAdd(arg: paper.AddPaperDocUser): Promise<Array<paper.AddPaperDocUserMemberResult>>;
public paperDocsUsersList(arg: paper.ListUsersOnPaperDocArgs): Promise<paper.ListUsersOnPaperDocResponse>;
public paperDocsUsersListContinue(arg: paper.ListUsersOnPaperDocContinueArgs): Promise<paper.ListUsersOnPaperDocResponse>;
public paperDocsUsersRemove(arg: paper.RemovePaperDocUser): Promise<void>;
public sharingAddFileMember(arg: sharing.AddFileMemberArgs): Promise<Array<sharing.FileMemberActionResult>>;
public sharingAddFolderMember(arg: sharing.AddFolderMemberArg): Promise<void>;
public sharingChangeFileMemberAccess(arg: sharing.ChangeFileMemberAccessArgs): Promise<sharing.FileMemberActionResult>;
public sharingCheckJobStatus(arg: async.PollArg): Promise<sharing.JobStatus>;
public sharingCheckRemoveMemberJobStatus(arg: async.PollArg): Promise<sharing.RemoveMemberJobStatus>;
public sharingCheckShareJobStatus(arg: async.PollArg): Promise<sharing.ShareFolderJobStatus>;
public sharingCreateSharedLink(arg: sharing.CreateSharedLinkArg): Promise<sharing.PathLinkMetadata>;
public sharingCreateSharedLinkWithSettings(arg: sharing.CreateSharedLinkWithSettingsArg): Promise<sharing.FileLinkMetadataReference|sharing.FolderLinkMetadataReference|sharing.SharedLinkMetadataReference>;
public sharingGetFileMetadata(arg: sharing.GetFileMetadataArg): Promise<sharing.SharedFileMetadata>;
public sharingGetFileMetadataBatch(arg: sharing.GetFileMetadataBatchArg): Promise<Array<sharing.GetFileMetadataBatchResult>>;
public sharingGetFolderMetadata(arg: sharing.GetMetadataArgs): Promise<sharing.SharedFolderMetadata>;
public sharingGetSharedLinkFile(arg: sharing.GetSharedLinkFileArg): Promise<sharing.FileLinkMetadataReference|sharing.FolderLinkMetadataReference|sharing.SharedLinkMetadataReference>;
public sharingGetSharedLinkMetadata(arg: sharing.GetSharedLinkMetadataArg): Promise<sharing.FileLinkMetadataReference|sharing.FolderLinkMetadataReference|sharing.SharedLinkMetadataReference>;
public sharingGetSharedLinks(arg: sharing.GetSharedLinksArg): Promise<sharing.GetSharedLinksResult>;
public sharingListFileMembers(arg: sharing.ListFileMembersArg): Promise<sharing.SharedFileMembers>;
public sharingListFileMembersBatch(arg: sharing.ListFileMembersBatchArg): Promise<Array<sharing.ListFileMembersBatchResult>>;
public sharingListFileMembersContinue(arg: sharing.ListFileMembersContinueArg): Promise<sharing.SharedFileMembers>;
public sharingListFolderMembers(arg: sharing.ListFolderMembersArgs): Promise<sharing.SharedFolderMembers>;
public sharingListFolderMembersContinue(arg: sharing.ListFolderMembersContinueArg): Promise<sharing.SharedFolderMembers>;
public sharingListFolders(arg: sharing.ListFoldersArgs): Promise<sharing.ListFoldersResult>;
public sharingListFoldersContinue(arg: sharing.ListFoldersContinueArg): Promise<sharing.ListFoldersResult>;
public sharingListMountableFolders(arg: sharing.ListFoldersArgs): Promise<sharing.ListFoldersResult>;
public sharingListMountableFoldersContinue(arg: sharing.ListFoldersContinueArg): Promise<sharing.ListFoldersResult>;
public sharingListReceivedFiles(arg: sharing.ListFilesArg): Promise<sharing.ListFilesResult>;
public sharingListReceivedFilesContinue(arg: sharing.ListFilesContinueArg): Promise<sharing.ListFilesResult>;
public sharingListSharedLinks(arg: sharing.ListSharedLinksArg): Promise<sharing.ListSharedLinksResult>;
public sharingModifySharedLinkSettings(arg: sharing.ModifySharedLinkSettingsArgs): Promise<sharing.FileLinkMetadataReference|sharing.FolderLinkMetadataReference|sharing.SharedLinkMetadataReference>;
public sharingMountFolder(arg: sharing.MountFolderArg): Promise<sharing.SharedFolderMetadata>;
public sharingRelinquishFileMembership(arg: sharing.RelinquishFileMembershipArg): Promise<void>;
public sharingRelinquishFolderMembership(arg: sharing.RelinquishFolderMembershipArg): Promise<async.LaunchEmptyResult>;
public sharingRemoveFileMember(arg: sharing.RemoveFileMemberArg): Promise<sharing.FileMemberActionIndividualResult>;
public sharingRemoveFileMember2(arg: sharing.RemoveFileMemberArg): Promise<sharing.FileMemberRemoveActionResult>;
public sharingRemoveFolderMember(arg: sharing.RemoveFolderMemberArg): Promise<async.LaunchResultBase>;
public sharingRevokeSharedLink(arg: sharing.RevokeSharedLinkArg): Promise<void>;
public sharingShareFolder(arg: sharing.ShareFolderArg): Promise<sharing.ShareFolderLaunch>;
public sharingTransferFolder(arg: sharing.TransferFolderArg): Promise<void>;
public sharingUnmountFolder(arg: sharing.UnmountFolderArg): Promise<void>;
public sharingUnshareFile(arg: sharing.UnshareFileArg): Promise<void>;
public sharingUnshareFolder(arg: sharing.UnshareFolderArg): Promise<async.LaunchEmptyResult>;
public sharingUpdateFileMember(arg: sharing.UpdateFileMemberArgs): Promise<sharing.MemberAccessLevelResult>;
public sharingUpdateFolderMember(arg: sharing.UpdateFolderMemberArg): Promise<sharing.MemberAccessLevelResult>;
public sharingUpdateFolderPolicy(arg: sharing.UpdateFolderPolicyArg): Promise<sharing.SharedFolderMetadata>;
public teamLogGetEvents(arg: team_log.GetTeamEventsArg): Promise<team_log.GetTeamEventsResult>;
public teamLogGetEventsContinue(arg: team_log.GetTeamEventsContinueArg): Promise<team_log.GetTeamEventsResult>;
public usersGetAccount(arg: users.GetAccountArg): Promise<users.BasicAccount>;
public usersGetAccountBatch(arg: users.GetAccountBatchArg): Promise<users.GetAccountBatchResult>;
public usersGetCurrentAccount(arg: void): Promise<users.FullAccount>;
public usersGetSpaceUsage(arg: void): Promise<users.SpaceUsage>;
}
关于javascript - 如何使用 typescript 声明(.ts.d 文件)在 Angular cli 应用程序中使用第三方 javascript API/SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45843781/
我正在通过 labrepl 工作,我看到了一些遵循此模式的代码: ;; Pattern (apply #(apply f %&) coll) ;; Concrete example user=> (a
我从未向应用商店提交过应用,但我会在不久的将来提交。 到目前为止,我对为 iPhone 而非 iPad 进行设计感到很自在。 我了解,通过将通用PAID 应用放到应用商店,客户只需支付一次就可以同时使
我有一个应用程序,它使用不同的 Facebook 应用程序(2 个不同的 AppID)在 Facebook 上发布并显示它是“通过 iPhone”/“通过 iPad”。 当 Facebook 应用程序
我有一个要求,我们必须通过将网站源文件保存在本地 iOS 应用程序中来在 iOS 应用程序 Webview 中运行网站。 Angular 需要服务器来运行应用程序,但由于我们将文件保存在本地,我们无法
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
假设我有一个安装在用户设备上的 Android 应用程序 A,我的应用程序有一个 AppWidget,我们可以让其他 Android 开发人员在其中以每次安装成本为基础发布他们的应用程序推广广告。因此
Secrets of the JavaScript Ninja中有一个例子它提供了以下代码来绕过 JavaScript 的 Math.min() 函数,该函数需要一个可变长度列表。 Example:
当我分别将数组和对象传递给 function.apply() 时,我得到 NaN 的 o/p,但是当我传递对象和数组时,我得到一个数字。为什么会发生这种情况? 由于数组也被视为对象,为什么我无法使用它
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章ASP转换格林威治时间函数DateDiff()应用由作者收集整理,如果你
我正在将列表传递给 map并且想要返回一个带有合并名称的 data.frame 对象。 例如: library(tidyverse) library(broom) mtcars %>% spl
我有一个非常基本的问题,但我不知道如何实现它:我有一个返回数据框,其中每个工具的返回值是按行排列的: tmp<-as.data.frame(t(data.frame(a=rnorm(250,0,1)
我正在使用我的 FB 应用创建群组并邀请用户加入我的应用群组,第一次一切正常。当我尝试创建另一个组时,出现以下错误: {"(OAuthException - #4009) (#4009) 在有更多用户
我们正在开发一款类似于“会说话的本”应用程序的 child 应用程序。它包含大量用于交互式动画的 JPEG 图像序列。 问题是动画在 iPad Air 上播放正常,但在 iPad 2 上播放缓慢或滞后
我关注 clojure 一段时间了,它的一些功能非常令人兴奋(持久数据结构、函数式方法、不可变状态)。然而,由于我仍在学习,我想了解如何在实际场景中应用,证明其好处,然后演化并应用于更复杂的问题。即,
我开发了一个仅使用挪威语的应用程序。该应用程序不使用本地化,因为它应该仅以一种语言(挪威语)显示。但是,我已在 Info.plist 文件中将“本地化 native 开发区域”设置为“no”。我还使用
读完 Anthony's response 后上a style-related parser question ,我试图说服自己编写单体解析器仍然可以相当紧凑。 所以而不是 reference ::
multicore 库中是否有类似 sapply 的东西?还是我必须 unlist(mclapply(..)) 才能实现这一点? 如果它不存在:推理是什么? 提前致谢,如果这是一个愚蠢的问题,我们深表
我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,它们不会随着控制台继续滚动而丢失)。一种方法是使用 sink() 和 file.show()。例如: y <- rnorm(100); x <- r
我有一个如下所示的 spring mvc Controller @RequestMapping(value="/new", method=RequestMethod.POST) public Stri
我正在阅读 StructureMap关于依赖注入(inject),首先有两部分初始化映射,具体类类型的接口(interface),另一部分只是实例化(请求实例)。 第一部分需要配置和设置,这是在 Bo
我是一名优秀的程序员,十分优秀!